aboutsummaryrefslogtreecommitdiff
path: root/src/game/ObjectAccessor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/ObjectAccessor.cpp')
-rw-r--r--src/game/ObjectAccessor.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/game/ObjectAccessor.cpp b/src/game/ObjectAccessor.cpp
index b420e4af4b2..76fc02a7c02 100644
--- a/src/game/ObjectAccessor.cpp
+++ b/src/game/ObjectAccessor.cpp
@@ -60,7 +60,7 @@ ObjectAccessor::GetCreatureOrPetOrVehicle(WorldObject const &u, uint64 guid)
if(IS_VEHICLE_GUID(guid))
return GetVehicle(guid);
- return u.GetMap()->GetCreature(guid);
+ return u.IsInWorld() ? u.GetMap()->GetCreature(guid) : NULL;
}
/*
@@ -135,7 +135,11 @@ Object* ObjectAccessor::GetObjectByTypeMask(WorldObject const &p, uint64 guid, u
Player*
ObjectAccessor::FindPlayer(uint64 guid)
{
- return GetObjectInWorld(guid, (Player*)NULL);
+ Player * plr = GetObjectInWorld(guid, (Player*)NULL);
+ if(!plr || !plr->IsInWorld())
+ return NULL;
+
+ return plr;
}
Player*
@@ -145,7 +149,7 @@ ObjectAccessor::FindPlayerByName(const char *name)
HashMapHolder<Player>::MapType& m = HashMapHolder<Player>::GetContainer();
HashMapHolder<Player>::MapType::iterator iter = m.begin();
for(; iter != m.end(); ++iter)
- if( ::strcmp(name, iter->second->GetName()) == 0 )
+ if(iter->second->IsInWorld() && ( ::strcmp(name, iter->second->GetName()) == 0 ))
return iter->second;
return NULL;
}