mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-09 03:18:57 +01:00
Core/Loot: implement a custom server setting to enable/disable AE loot
This commit is contained in:
@@ -726,7 +726,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe
|
||||
|
||||
bool HasSceneInstanceIDs = !player->GetSceneMgr().GetSceneTemplateByInstanceMap().empty();
|
||||
bool HasRuneState = ToUnit()->GetPowerIndex(POWER_RUNES) != MAX_POWERS;
|
||||
bool HasActionButtons = player->IsLoading();
|
||||
bool HasActionButtons = true;
|
||||
|
||||
data->WriteBit(HasSceneInstanceIDs);
|
||||
data->WriteBit(HasRuneState);
|
||||
|
||||
@@ -231,9 +231,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());
|
||||
|
||||
@@ -1510,6 +1510,9 @@ void World::LoadConfigSettings(bool reload)
|
||||
_guidWarningMsg = sConfigMgr->GetStringDefault("Respawn.WarningMessage", "There will be an unscheduled server restart at 03:00. The server will be available again shortly after.");
|
||||
_alertRestartReason = sConfigMgr->GetStringDefault("Respawn.AlertRestartReason", "Urgent Maintenance");
|
||||
m_int_configs[CONFIG_RESPAWN_GUIDWARNING_FREQUENCY] = sConfigMgr->GetIntDefault("Respawn.WarningFrequency", 1800);
|
||||
|
||||
m_bool_configs[CONFIG_ENABLE_AE_LOOT] = sConfigMgr->GetBoolDefault("EnableAELoot", false);
|
||||
|
||||
///- Read the "Data" directory from the config file
|
||||
std::string dataPath = sConfigMgr->GetStringDefault("DataDir", "./");
|
||||
if (dataPath.empty() || (dataPath.at(dataPath.length()-1) != '/' && dataPath.at(dataPath.length()-1) != '\\'))
|
||||
|
||||
@@ -196,6 +196,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
|
||||
};
|
||||
|
||||
|
||||
@@ -3531,6 +3531,14 @@ Creature.CheckInvalidPosition = 0
|
||||
|
||||
GameObject.CheckInvalidPosition = 0
|
||||
|
||||
#
|
||||
# EnableAELoot
|
||||
# Description: Enables/Disables the AE loot feature. AE loot allows players to loot multiple corpses within a 30 yards radius at once.
|
||||
# Default: 0 - (Disabled)
|
||||
1 - (Enabled)
|
||||
|
||||
EnableAELoot = 0
|
||||
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
|
||||
Reference in New Issue
Block a user