From 55ef3bca2ae79d87d2e08e80bf29eec38892545f Mon Sep 17 00:00:00 2001 From: megamage Date: Sat, 20 Dec 2008 17:42:40 -0600 Subject: *Update visibility only once per update. --HG-- branch : trunk --- src/game/Unit.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/game/Unit.cpp') 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 targets; + Trinity::AnyUnitInObjectRangeCheck check(this, World::GetMaxVisibleDistance()); + Trinity::UnitListSearcher searcher(targets, check); + VisitNearbyWorldObject(World::GetMaxVisibleDistance(), searcher); + for(std::list::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) -- cgit v1.2.3