diff options
author | megamage <none@none> | 2009-04-13 17:21:59 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-13 17:21:59 -0500 |
commit | 214307428078f937c068fb5219686e3090c97a9c (patch) | |
tree | 2febd9b6cf0a978b6cfda1bd14eb5bc6de9a1dd2 /src/game/ObjectMgr.cpp | |
parent | 53d37935a98bfb767b65c508bc53908817eaba24 (diff) |
[7659] Added several security checks to prevent cheating using facked packets Author: arrai
--HG--
branch : trunk
Diffstat (limited to 'src/game/ObjectMgr.cpp')
-rw-r--r-- | src/game/ObjectMgr.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index b797757a9f3..9e4c7244c58 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -4267,6 +4267,23 @@ void ObjectMgr::LoadInstanceTemplate() sLog.outString(); } +bool ObjectMgr::IsGameObjectOfTypeInRange(Player *player, uint64 guid, GameobjectTypes type) const +{ + if(GameObject *go = ObjectAccessor::GetGameObject(*player, guid)) + { + if(go->GetGoType() == type) + { + // TODO: find out how the client calculates the maximal usage distance to spellless working + // gameobjects like guildbanks and mailboxes - 10.0 is a just an abitrary choosen number + if (go->IsWithinDistInMap(player, 10.0f)) + return true; + sLog.outError("IsGameObjectOfTypeInRange: GameObject '%s' [GUID: %u] is too far away from player %s [GUID: %u] to be used by him (distance=%f, maximal 10 is allowed)", go->GetGOInfo()->name, + go->GetGUIDLow(), player->GetName(), player->GetGUIDLow(), go->GetDistance(player)); + } + } + return false; +} + GossipText const *ObjectMgr::GetGossipText(uint32 Text_ID) const { GossipTextMap::const_iterator itr = mGossipText.find(Text_ID); |