Core/Groups: Fixes groups staying linked with players.
This commit is contained in:
@@ -592,10 +592,10 @@ namespace Game.AI
|
||||
_allySet.Add(me.GetGUID());
|
||||
if (group != null) // add group
|
||||
{
|
||||
for (GroupReference refe = group.GetFirstMember(); refe != null; refe = refe.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player target = refe.GetSource();
|
||||
if (target == null || !target.IsInMap(owner) || !group.SameSubGroup(owner.ToPlayer(), target))
|
||||
Player target = groupRef.GetSource();
|
||||
if (!target.IsInMap(owner) || !group.SameSubGroup(owner.ToPlayer(), target))
|
||||
continue;
|
||||
|
||||
if (target.GetGUID() == owner.GetGUID())
|
||||
|
||||
@@ -83,12 +83,11 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member != null)
|
||||
if (member.IsInMap(player))
|
||||
member.FailQuest(_escortQuest.Id);
|
||||
if (member.IsInMap(player))
|
||||
member.FailQuest(_escortQuest.Id);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -150,12 +149,11 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member != null)
|
||||
if (me.IsWithinDistInMap(member, GetMaxPlayerDistance()))
|
||||
return true;
|
||||
if (me.IsWithinDistInMap(member, GetMaxPlayerDistance()))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (me.IsWithinDistInMap(player, GetMaxPlayerDistance()))
|
||||
|
||||
@@ -52,12 +52,11 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member != null)
|
||||
if (member.IsInMap(player))
|
||||
member.FailQuest(_questForFollow);
|
||||
if (member.IsInMap(player))
|
||||
member.FailQuest(_questForFollow);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -109,12 +108,9 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null && (maxRangeExceeded || questAbandoned); groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member == null)
|
||||
continue;
|
||||
|
||||
if (maxRangeExceeded && me.IsWithinDistInMap(member, 100.0f))
|
||||
maxRangeExceeded = false;
|
||||
|
||||
@@ -253,10 +249,10 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member != null && me.IsWithinDistInMap(member, 100.0f) && member.IsAlive())
|
||||
if (me.IsWithinDistInMap(member, 100.0f) && member.IsAlive())
|
||||
{
|
||||
Log.outDebug(LogFilter.Scripts, $"FollowerAI::GetLeaderForFollower: GetLeader changed and returned new leader. ({me.GetGUID()})");
|
||||
_leaderGUID = member.GetGUID();
|
||||
|
||||
@@ -227,7 +227,7 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player groupGuy = groupRef.GetSource();
|
||||
if (!groupGuy.IsInMap(player))
|
||||
@@ -333,7 +333,7 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player groupGuy = groupRef.GetSource();
|
||||
if (groupGuy.IsInMap(player) && me.GetDistance(groupGuy) <= checkDist)
|
||||
|
||||
@@ -2889,12 +2889,11 @@ namespace Game.AI
|
||||
Group group = player.GetGroup();
|
||||
if (group != null)
|
||||
{
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.Next())
|
||||
foreach (GroupReference groupRef in group.GetMembers())
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member != null)
|
||||
if (member.IsInMap(player))
|
||||
targets.Add(member);
|
||||
if (member.IsInMap(player))
|
||||
targets.Add(member);
|
||||
}
|
||||
}
|
||||
// We still add the player to the list if there is no group. If we do
|
||||
|
||||
Reference in New Issue
Block a user