Core/Misc: Fix various crashes, also related to multithreading
Port From (https://github.com/TrinityCore/TrinityCore/commit/ad008c43b75080ec59aa973f1e2e4424332c34a4)
This commit is contained in:
@@ -249,6 +249,8 @@ namespace Game.AI
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.next())
|
||||
{
|
||||
Player groupGuy = groupRef.GetSource();
|
||||
if (!groupGuy.IsInMap(player))
|
||||
continue;
|
||||
|
||||
if (!fail && groupGuy.IsAtGroupRewardDistance(me) && !groupGuy.GetCorpse())
|
||||
groupGuy.AreaExploredOrEventHappens(mEscortQuestID);
|
||||
@@ -402,8 +404,7 @@ namespace Game.AI
|
||||
for (GroupReference groupRef = group.GetFirstMember(); groupRef != null; groupRef = groupRef.next())
|
||||
{
|
||||
Player groupGuy = groupRef.GetSource();
|
||||
|
||||
if (me.GetDistance(groupGuy) <= SMART_ESCORT_MAX_PLAYER_DIST)
|
||||
if (groupGuy.IsInMap(player) && me.GetDistance(groupGuy) <= SMART_ESCORT_MAX_PLAYER_DIST)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2614,7 +2614,8 @@ namespace Game.AI
|
||||
{
|
||||
Player member = groupRef.GetSource();
|
||||
if (member)
|
||||
l.Add(member);
|
||||
if (member.IsInMap(player))
|
||||
l.Add(member);
|
||||
}
|
||||
}
|
||||
// We still add the player to the list if there is no group. If we do
|
||||
@@ -2838,7 +2839,8 @@ namespace Game.AI
|
||||
{
|
||||
Player recipient = refe.GetSource();
|
||||
if (recipient)
|
||||
l.Add(recipient);
|
||||
if (recipient.IsInMap(me))
|
||||
l.Add(recipient);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user