diff options
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 24d1f3a3121..a4a08bb40f1 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9959,14 +9959,26 @@ void Unit::SetVisibility(UnitVisibility x) m_Visibility = x; if(IsInWorld()) + SetToNotify(); + + if(x == VISIBILITY_GROUP_STEALTH) { + std::list<Unit*> targets; + Trinity::AnyUnitInObjectRangeCheck check(this, World::GetMaxVisibleDistance()); + Trinity::UnitListSearcher<Trinity::AnyUnitInObjectRangeCheck> searcher(targets, check); + VisitNearbyWorldObject(World::GetMaxVisibleDistance(), searcher); + for(std::list<Unit*>::iterator iter = targets.begin(); iter != targets.end(); ++iter) + if((*iter)->GetTypeId() == TYPEID_PLAYER) + ((Player*)(*iter))->m_clientGUIDs.erase(GetGUID()); + } + /*{ Map *m = GetMap(); if(GetTypeId()==TYPEID_PLAYER) m->PlayerRelocation((Player*)this,GetPositionX(),GetPositionY(),GetPositionZ(),GetOrientation()); else m->CreatureRelocation((Creature*)this,GetPositionX(),GetPositionY(),GetPositionZ(),GetOrientation()); - } + }*/ } void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) |