From 4e67618e5fef05f389c8bcae262399628b35ed0c Mon Sep 17 00:00:00 2001 From: Traesh Date: Mon, 9 Oct 2023 20:55:55 +0200 Subject: [PATCH] Core/Spells: Fix CheckLocation for multi-level zone/area --- src/server/game/Spells/SpellInfo.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 1f99e53a93..c608a87157 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1732,8 +1732,9 @@ SpellCastResult SpellInfo::CheckLocation(uint32 map_id, uint32 zone_id, uint32 a while (groupEntry) { for (uint8 i = 0; i < MAX_GROUP_AREA_IDS; ++i) - if (groupEntry->AreaID[i] == zone_id || groupEntry->AreaID[i] == area_id) + if (DBCManager::IsInArea(area_id, groupEntry->AreaID[i])) found = true; + if (found || !groupEntry->NextAreaID) break; // Try search in next group