Core/Quests: Merged UpdateNearbyCreatureNpcFlags, UpdateVisibleGameobjectsOrSpellClicks and SendQuestGiverStatusMultiple on quest actions

* Fixes quest markers above NPC heads not disappearing when player stops seeing questgiver npc flag
Port From (https://github.com/TrinityCore/TrinityCore/commit/97d7ccd180f96a414f205396261907e1e87d491a)
This commit is contained in:
hondacrx
2024-03-04 12:18:45 -05:00
parent 974ca273ae
commit 0325d8b523
8 changed files with 78 additions and 96 deletions
-29
View File
@@ -5520,35 +5520,6 @@ namespace Game.Entities
return go;
}
public void UpdateNearbyCreatureNpcFlags()
{
List<Creature> creatures = GetCreatureListWithOptionsInGrid(GetVisibilityRange(), new() { IgnorePhases = false });
UpdateData udata = new(GetMapId());
ObjectFieldData objMask = new();
UnitData unitMask = new();
for (int i = 0; i < m_unitData.NpcFlags.GetSize(); ++i)
unitMask.MarkChanged(m_unitData.NpcFlags, i);
foreach (Creature creature in creatures)
{
if (!HaveAtClient(creature))
continue;
// skip creatures which dont have any npcflags set
if (creature.GetNpcFlags() == 0 && creature.GetNpcFlags2() == 0)
continue;
creature.BuildValuesUpdateForPlayerWithMask(udata, objMask.GetUpdateMask(), unitMask.GetUpdateMask(), this);
}
if (!udata.HasData())
return;
udata.BuildPacket(out UpdateObject packet);
SendPacket(packet);
}
public void SendInitialPacketsBeforeAddToMap()
{
if (!m_teleport_options.HasAnyFlag(TeleportToOptions.Seamless))