diff options
| author | Shauren <shauren.trinity@gmail.com> | 2025-05-17 19:43:19 +0200 | 
|---|---|---|
| committer | Ovahlord <dreadkiller@gmx.de> | 2025-05-26 20:49:48 +0200 | 
| commit | feddd8e48608754f270fd399cb910215a71cb1fd (patch) | |
| tree | 1f485fc830b8b9ffd571a8bcc772c3ff32365472 /src/server/game/Handlers/SpellHandler.cpp | |
| parent | c73c7117ed820a69cbb3de64ffb1b9427a639455 (diff) | |
Core/PacketIO: Implemented CMSG_UPDATE_SPELL_VISUAL
(cherry picked from commit 0d475eac5f2fdee58d79b1f3361da6d3f22b0232)
# Conflicts:
#	src/server/game/Server/WorldSession.h
Diffstat (limited to 'src/server/game/Handlers/SpellHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/SpellHandler.cpp | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index eaa3a55ceba..9b39eb0b5f0 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -542,6 +542,25 @@ void WorldSession::HandleUpdateMissileTrajectory(WorldPackets::Spells::UpdateMis          HandleMovementOpcode(CMSG_MOVE_STOP, *packet.Status);  } +void WorldSession::HandleUpdateAuraVisual(WorldPackets::Spells::UpdateAuraVisual const& updateAuraVisual) +{ +    Unit* target = ObjectAccessor::GetUnit(*_player, updateAuraVisual.TargetGUID); +    if (!target) +        return; + +    SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(updateAuraVisual.SpellID, _player->GetMap()->GetDifficultyID()); +    if (!spellInfo) +        return; + +    uint32 spellXspellVisualId = _player->GetCastSpellXSpellVisualId(spellInfo); +    for (auto const& [_, auraApp] : Trinity::Containers::MapEqualRange(target->GetAppliedAuras(), spellInfo->Id)) +        if (auraApp->GetBase()->GetCasterGUID() == _player->GetGUID()) +            auraApp->GetBase()->SetSpellVisual({ .SpellXSpellVisualID = spellXspellVisualId }); + +    if (_player->GetChannelSpellId() == spellInfo->Id) +        _player->SetChannelVisual({ .SpellXSpellVisualID = spellXspellVisualId }); +} +  void WorldSession::HandleKeyboundOverride(WorldPackets::Spells::KeyboundOverride& keyboundOverride)  {      Player* player = GetPlayer();  | 
