diff options
author | ModoX <moardox@gmail.com> | 2023-08-29 08:39:41 +0200 |
---|---|---|
committer | ModoX <moardox@gmail.com> | 2023-08-29 08:47:02 +0200 |
commit | bb5eab4c369326a27c2b4a80d178b9a13780f7a3 (patch) | |
tree | d25d6c95c14fb77c34be843cd2324b7b71c7a147 | |
parent | 72b9aace54e44d30c323bd1acda630125e8a574d (diff) |
Core/GameObjects: Added some checks to GAMEOBJECT_TYPE_NEW_FLAG and GAMEOBJECT_TYPE_NEW_FLAG_DROP to prevent exploits
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index ad7e9c68127..420c20f90fc 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -2966,7 +2966,11 @@ void GameObject::Use(Unit* user) if (!info) return; - if (user->GetTypeId() != TYPEID_PLAYER) + Player* player = user->ToPlayer(); + if (!player) + return; + + if (!player->CanUseBattlegroundObject(this)) return; GameObjectType::NewFlag const* newFlag = dynamic_cast<GameObjectType::NewFlag const*>(m_goTypeImpl.get()); @@ -2989,6 +2993,9 @@ void GameObject::Use(Unit* user) if (user->GetTypeId() != TYPEID_PLAYER) return; + if (!user->IsAlive()) + return; + if (GameObject* owner = GetMap()->GetGameObject(GetOwnerGUID())) { if (owner->GetGoType() == GAMEOBJECT_TYPE_NEW_FLAG) |