Core/PacketIO: Implemented CMSG_UPDATE_AREA_TRIGGER_VISUAL

Port From (https://github.com/TrinityCore/TrinityCore/commit/b88f4b7f4f8744b7cd455c07d3b94a704c373dfe)
This commit is contained in:
Hondacrx
2025-08-18 09:46:54 -04:00
parent 9fad3e7752
commit ddfc5c7484
4 changed files with 45 additions and 6 deletions
@@ -136,14 +136,12 @@ namespace Game.Entities
spellForVisuals = Global.SpellMgr.GetSpellInfo(GetCreateProperties().SpellForVisuals.Value, Difficulty.None);
if (spellForVisuals != null)
spellVisual.SpellXSpellVisualID = spellForVisuals.GetSpellXSpellVisualId();
spellVisual.SpellXSpellVisualID = caster != null ? caster.GetCastSpellXSpellVisualId(spellForVisuals) : spellForVisuals.GetSpellXSpellVisualId();
}
if (spellForVisuals != null)
SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.SpellForVisuals), spellForVisuals.Id);
SpellCastVisualField spellCastVisual = areaTriggerData.ModifyValue(m_areaTriggerData.SpellVisual);
SetUpdateFieldValue(ref spellCastVisual.SpellXSpellVisualID, spellVisual.SpellXSpellVisualID);
SetUpdateFieldValue(ref spellCastVisual.ScriptVisualID, spellVisual.ScriptVisualID);
SetSpellVisual(spellVisual);
if (!IsStaticSpawn())
SetUpdateFieldValue(areaTriggerData.ModifyValue(m_areaTriggerData.TimeToTargetScale), GetCreateProperties().TimeToTargetScale != 0 ? GetCreateProperties().TimeToTargetScale : m_areaTriggerData.Duration);
@@ -404,6 +402,13 @@ namespace Game.Entities
ClearScaleCurve(m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.OverrideMoveCurveZ));
}
public void SetSpellVisual(SpellCastVisual visual)
{
SpellCastVisualField spellCastVisual = m_values.ModifyValue(m_areaTriggerData).ModifyValue(m_areaTriggerData.SpellVisual);
SetUpdateFieldValue(ref spellCastVisual.SpellXSpellVisualID, visual.SpellXSpellVisualID);
SetUpdateFieldValue(ref spellCastVisual.ScriptVisualID, visual.ScriptVisualID);
}
public void SetDuration(int newDuration)
{
_duration = newDuration;
@@ -1449,7 +1454,7 @@ namespace Game.Entities
public AreaTriggerOrbitInfo GetOrbit() { return _orbitInfo; }
AreaTriggerFieldData m_areaTriggerData;
public AreaTriggerFieldData m_areaTriggerData;
ulong _spawnId;