*Fix a bug that redundant packets are sent to clients which may cause freeze.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-17 14:35:11 -06:00
parent d4b52d5bbc
commit 5fb7a0585c
6 changed files with 10 additions and 28 deletions

View File

@@ -54,7 +54,7 @@ PlayerVisibilityNotifier::Notify()
if(i_clientGUIDs.find((*itr)->GetGUID())!=i_clientGUIDs.end())
{
(*itr)->UpdateVisibilityOf(&i_player);
i_player.UpdateVisibilityOf((*itr),i_data,i_data_updates,i_visibleNow);
i_player.UpdateVisibilityOf((*itr),i_data,i_visibleNow);
i_clientGUIDs.erase((*itr)->GetGUID());
}
}
@@ -72,17 +72,6 @@ PlayerVisibilityNotifier::Notify()
#endif
}
// send update to other players (except player updates that already sent using SendUpdateToPlayer)
for(UpdateDataMapType::iterator iter = i_data_updates.begin(); iter != i_data_updates.end(); ++iter)
{
if(iter->first==&i_player)
continue;
WorldPacket packet;
iter->second.BuildPacket(&packet);
iter->first->GetSession()->SendPacket(&packet);
}
if( i_data.HasData() )
{
// send create/outofrange packet to player (except player create updates that already sent using SendUpdateToPlayer)