aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-07-12 00:00:08 +0200
committerShauren <shauren.trinity@gmail.com>2025-07-12 00:00:08 +0200
commit0e61ea0b1ab17210b0cbc135408ffb501a2dc5fe (patch)
tree145ba370fd084548a82ef9e09361e45815233d8c /src
parent6d79a4cd68abffa33392d09b62d16a90803a92a3 (diff)
Core/Loot: Add aoe loot target cap same as on official servers (50 corpses)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/LootHandler.cpp4
-rw-r--r--src/server/game/Server/Packets/LootPackets.h4
2 files changed, 5 insertions, 3 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp
index 695caeb7282..c048c4887d0 100644
--- a/src/server/game/Handlers/LootHandler.cpp
+++ b/src/server/game/Handlers/LootHandler.cpp
@@ -234,8 +234,10 @@ void WorldSession::HandleLootOpcode(WorldPackets::Loot::LootUnit& packet)
std::vector<Creature*> corpses;
if (aeLootEnabled)
{
- Trinity::CreatureListSearcher<AELootCreatureCheck> searcher(_player, corpses, check);
+ Trinity::CreatureListSearcher searcher(_player, corpses, check);
Cell::VisitGridObjects(_player, searcher, AELootCreatureCheck::LootDistance);
+ if (corpses.size() > 49)
+ corpses.resize(49); // lootTarget is 50th, not in corpses vector
}
if (!corpses.empty())
diff --git a/src/server/game/Server/Packets/LootPackets.h b/src/server/game/Server/Packets/LootPackets.h
index d8c5608cdda..1065d4905be 100644
--- a/src/server/game/Server/Packets/LootPackets.h
+++ b/src/server/game/Server/Packets/LootPackets.h
@@ -92,7 +92,7 @@ namespace WorldPackets
void Read() override;
- Array<LootRequest, 1000> Loot;
+ Array<LootRequest, 100> Loot;
bool IsSoftInteract = false;
};
@@ -103,7 +103,7 @@ namespace WorldPackets
void Read() override;
- Array<LootRequest, 1000> Loot;
+ Array<LootRequest, 100> Loot;
ObjectGuid Target;
};