Core/Achievements: Fix CriteriaTypes related to areas and zones

Port From (https://github.com/TrinityCore/TrinityCore/commit/10b06ff50f77cc0516c5f17adffef8eb75f1d555)
This commit is contained in:
hondacrx
2024-02-01 10:55:35 -05:00
parent c00a8d32ea
commit fde94074be
3 changed files with 37 additions and 17 deletions
+9 -2
View File
@@ -134,13 +134,17 @@ namespace Game.Entities
PushQuests();
UpdateCriteria(CriteriaType.EnterTopLevelArea, newArea);
UpdateMountCapability();
if ((oldAreaEntry != null && oldAreaEntry.GetFlags2().HasFlag(AreaFlags2.UseSubzoneForChatChannel))
|| (area != null && area.GetFlags2().HasFlag(AreaFlags2.UseSubzoneForChatChannel)))
UpdateLocalChannels(newArea);
if (oldArea != newArea)
{
UpdateCriteria(CriteriaType.EnterArea, newArea);
UpdateCriteria(CriteriaType.LeaveArea, oldArea);
}
}
public void UpdateZone(uint newZone, uint newArea)
@@ -223,6 +227,9 @@ namespace Game.Entities
Guild guild = GetGuild();
if (guild != null)
guild.UpdateMemberData(this, GuildMemberData.ZoneId, newZone);
UpdateCriteria(CriteriaType.EnterTopLevelArea, newZone);
UpdateCriteria(CriteriaType.LeaveTopLevelArea, oldZone);
}
}