From 44de147a9bc6eb4522f4e92572d7b6b91d0854fe Mon Sep 17 00:00:00 2001 From: patou01 <2592673+patou01@users.noreply.github.com> Date: Thu, 25 Nov 2021 20:38:54 +0100 Subject: [PATCH] fix(Core/Loot) remove stealth/feign death on loot (#8982) * remove a few auras on loot * remove mount, doesn't work * removed unnecessary check. Changed to vector * exception for pickpocketing * Update src/server/game/Entities/Player/Player.cpp * Update src/server/game/Entities/Player/Player.cpp * Update src/server/game/Entities/Player/Player.cpp * Update src/server/game/Entities/Player/Player.cpp * Update src/server/game/Entities/Player/Player.cpp * not as elegant yadi yada but it seems to work * extra comment * stealth doesn't remove on containers and enchant anymore, but should it? * moved a few lines to the right place * remove disenchant and prospect from not breaking stealth * typo * comments Co-authored-by: Kargatum --- src/server/game/Entities/Player/Player.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index aa70512cb..36d7faeb1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7496,6 +7496,19 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type) PermissionTypes permission = ALL_PERMISSION; LOG_DEBUG("loot", "Player::SendLoot"); + + // remove FD and invisibility at all loots + constexpr std::array toRemove = {SPELL_AURA_MOD_INVISIBILITY, SPELL_AURA_FEIGN_DEATH}; + for (const auto& aura : toRemove) + { + RemoveAurasByType(aura); + } + // remove stealth only if looting a corpse + if (loot_type == LOOT_CORPSE && !guid.IsItem()) + { + RemoveAurasByType(SPELL_AURA_MOD_STEALTH); + } + if (guid.IsGameObject()) { LOG_DEBUG("loot", "guid.IsGameObject");