Core/Spells: Implemented SUMMON_PROP_FLAG_PERSONAL_GROUP_SPAWN

Port From (https://github.com/TrinityCore/TrinityCore/commit/2398c1e23c57cf5b6ac778b09a09d28e2704fd75)
This commit is contained in:
hondacrx
2021-03-29 17:47:18 -04:00
parent c1c9dbb762
commit 6b455863b5
4 changed files with 32 additions and 5 deletions
@@ -1113,6 +1113,11 @@ namespace Game.Entities
if (_privateObjectOwner == seer.GetPrivateObjectOwner())
return true;
Player playerSeer = seer.ToPlayer();
if (playerSeer != null)
if (playerSeer.IsInGroup(_privateObjectOwner))
return true;
return false;
}
@@ -149,6 +149,21 @@ namespace Game.Entities
}
}
public bool IsInGroup(ObjectGuid groupGuid)
{
Group group = GetGroup();
if (group != null)
if (group.GetGUID() == groupGuid)
return true;
Group originalGroup = GetOriginalGroup();
if (originalGroup != null)
if (originalGroup.GetGUID() == groupGuid)
return true;
return false;
}
public void SetGroup(Group group, byte subgroup = 0)
{
if (!group)
+10 -3
View File
@@ -1595,9 +1595,16 @@ namespace Game.Spells
if (m_originalCaster == null)
return;
ObjectGuid privateObjectOwner = ObjectGuid.Empty;
if (properties.Flags.HasAnyFlag(SummonPropFlags.PersonalSpawn))
privateObjectOwner = m_originalCaster.IsPrivateObject() ? m_originalCaster.GetPrivateObjectOwner() : m_originalCaster.GetGUID();
ObjectGuid privateObjectOwner = m_originalCaster.GetGUID();
if (!properties.Flags.HasAnyFlag(SummonPropFlags.PersonalSpawn | SummonPropFlags.PersonalGroupSpawn))
privateObjectOwner = ObjectGuid.Empty;
if (m_originalCaster.IsPrivateObject())
privateObjectOwner = m_originalCaster.GetPrivateObjectOwner();
if (properties.Flags.HasAnyFlag(SummonPropFlags.PersonalGroupSpawn))
if (m_originalCaster.IsPlayer() && m_originalCaster.ToPlayer().GetGroup())
privateObjectOwner = m_originalCaster.ToPlayer().GetGroup().GetGUID();
int duration = m_spellInfo.CalcDuration(m_originalCaster);