diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-05-26 22:29:57 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-05-27 18:53:47 +0200 |
| commit | 1c3268155d0165e150d239c3a808d5a8dddeae18 (patch) | |
| tree | 764d238d71e7349d6001edd21dec25cefaf7d4a6 /src/server/game/Entities | |
| parent | b070e63fa867f7f25e73e9ef3aafbe18902a50e9 (diff) | |
Core/AreaTriggers: Implement height check for polygon db2 areatriggers
Diffstat (limited to 'src/server/game/Entities')
| -rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index b06f41e0619..5b277b524b8 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2039,9 +2039,12 @@ bool Player::IsInAreaTrigger(AreaTriggerEntry const* areaTrigger) const return false; break; case 3: // Polygon - if (!IsInPolygon2D(areaTriggerPos, sObjectMgr->GetVerticesForAreaTrigger(areaTrigger))) + { + AreaTriggerPolygon const* polygon = sObjectMgr->GetAreaTriggerPolygon(areaTrigger->ID); + if (!polygon || (polygon->Height && GetPositionZ() > areaTrigger->Pos.Z + *polygon->Height) || !IsInPolygon2D(areaTriggerPos, polygon->Vertices)) return false; break; + } case 4: // Cylinder if (!IsWithinVerticalCylinder(areaTriggerPos, areaTrigger->Radius, areaTrigger->BoxHeight)) return false; |
