diff options
author | ModoX <moardox@gmail.com> | 2025-01-30 20:20:30 +0100 |
---|---|---|
committer | ModoX <moardox@gmail.com> | 2025-01-30 20:21:33 +0100 |
commit | e58fa4c35eaf24cfa4866b8ca24a61d45a3382d2 (patch) | |
tree | 9d459985b555932b9652e763f169406210af6aae /src/server/game/Spells/Auras | |
parent | 444a98111a8d08a985d9489b06f0e1487c04cab6 (diff) |
Core/Auras: Send scene complete if a SPELL_AURA_PLAY_SCENE aura is removed by expiration
Diffstat (limited to 'src/server/game/Spells/Auras')
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index e9cf05a12e4..4dc2623ddc4 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -6304,7 +6304,14 @@ void AuraEffect::HandlePlayScene(AuraApplication const* aurApp, uint8 mode, bool if (apply) player->GetSceneMgr().PlayScene(GetMiscValue()); else + { + if (aurApp->GetRemoveMode() == AURA_REMOVE_BY_EXPIRE) + { + if (Optional<uint32> sceneInstanceId = player->GetSceneMgr().GetInstanceIdBySceneId(GetMiscValue())) + player->GetSceneMgr().OnSceneComplete(*sceneInstanceId); + } player->GetSceneMgr().CancelSceneBySceneId(GetMiscValue()); + } } void AuraEffect::HandleCreateAreaTrigger(AuraApplication const* aurApp, uint8 mode, bool apply) const |