diff options
Diffstat (limited to 'src')
-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 + +# ################################################################################################### ################################################################################################### |