From 40af92dd66a4905946e155aca01fb75c0ba35185 Mon Sep 17 00:00:00 2001 From: leak Date: Tue, 18 Jan 2011 20:02:28 +0100 Subject: Core/Spells: Stop exploit that allowed looting despawned gameobjects by packet manipulation. --- src/server/game/Spells/SpellEffects.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index d75aaa6ea22..afd0b7dc714 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2704,6 +2704,13 @@ void Spell::SendLoot(uint64 guid, LootType loottype) if (gameObjTarget) { + // Players shouldn't be able to loot gameobjects that are currently despawned + if (gameObjTarget->GetRespawnTime() > 0 && !player->isGameMaster()) + { + sLog->outError("Possible hacking attempt: Player %s [guid: %u] tried to loot a gameobject [entry: %u id: %u] which is on respawn time without being in GM mode!", + player->GetName(), player->GetGUIDLow(), gameObjTarget->GetEntry(), gameObjTarget->GetGUIDLow()); + return; + } // special case, already has GossipHello inside so return and avoid calling twice if (gameObjTarget->GetGoType() == GAMEOBJECT_TYPE_GOOBER) { -- cgit v1.2.3