diff options
| -rw-r--r-- | src/server/game/Handlers/LootHandler.cpp | 9 | ||||
| -rw-r--r-- | src/server/game/World/World.cpp | 3 | ||||
| -rw-r--r-- | src/server/game/World/World.h | 1 | ||||
| -rw-r--r-- | src/server/worldserver/worldserver.conf.dist | 8 | 
4 files changed, 19 insertions, 2 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index 6e7b417a5b5..1ce22cf173d 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -36,6 +36,7 @@  #include "ObjectMgr.h"  #include "Player.h"  #include "SpellMgr.h" +#include "World.h"  class AELootCreatureCheck  { @@ -232,9 +233,13 @@ void WorldSession::HandleLootOpcode(WorldPackets::Loot::LootUnit& packet)      GetPlayer()->RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags::Looting); +    bool const aeLootEnabled = sWorld->getBoolConfig(CONFIG_ENABLE_AE_LOOT);      std::vector<Creature*> corpses; -    Trinity::CreatureListSearcher<AELootCreatureCheck> searcher(_player, corpses, check); -    Cell::VisitGridObjects(_player, searcher, AELootCreatureCheck::LootDistance); +    if (aeLootEnabled) +    { +        Trinity::CreatureListSearcher<AELootCreatureCheck> searcher(_player, corpses, check); +        Cell::VisitGridObjects(_player, searcher, AELootCreatureCheck::LootDistance); +    }      if (!corpses.empty())          SendPacket(WorldPackets::Loot::AELootTargets(uint32(corpses.size() + 1)).Write()); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index bb55881deaa..0274fb484f7 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1721,6 +1721,9 @@ void World::LoadConfigSettings(bool reload)      // Specifies if IP addresses can be logged to the database      m_bool_configs[CONFIG_ALLOW_LOGGING_IP_ADDRESSES_IN_DATABASE] = sConfigMgr->GetBoolDefault("AllowLoggingIPAddressesInDatabase", true, true); +    // Enable AE loot +    m_bool_configs[CONFIG_ENABLE_AE_LOOT] = sConfigMgr->GetBoolDefault("Loot.EnableAELoot", true); +      // call ScriptMgr if we're reloading the configuration      if (reload)          sScriptMgr->OnConfigLoad(reload); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index ce513f6570b..7c7dcbb5cfc 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -197,6 +197,7 @@ enum WorldBoolConfigs      CONFIG_ALLOW_LOGGING_IP_ADDRESSES_IN_DATABASE,      CONFIG_CHARACTER_CREATING_DISABLE_ALLIED_RACE_ACHIEVEMENT_REQUIREMENT,      CONFIG_BATTLEGROUNDMAP_LOAD_GRIDS, +    CONFIG_ENABLE_AE_LOOT,      BOOL_CONFIG_VALUE_COUNT  }; diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index d239a0857b5..0be8888f1b4 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -3555,6 +3555,14 @@ Creature.CheckInvalidPosition = 0  GameObject.CheckInvalidPosition = 0  # +#     Loot.EnableAELoot +#        Description: Enables AE loot which will allow looting all creatures within a 30 yards radius at once +#        Default:     1  - (AE loot enabled) +#                     0  - (AE loot disabled) + +Loot.EnableAELoot = 1 + +#  ###################################################################################################  ###################################################################################################  | 
