[Server] Send large ID_CONTAINER packets on a need-to-know basis

This commit is contained in:
David Cernat 2017-02-19 20:20:44 +02:00
parent 791089d342
commit 24251cafd0
2 changed files with 9 additions and 2 deletions

View file

@ -598,6 +598,13 @@ void Networking::processWorldPacket(RakNet::Packet *packet)
player->npc.mName.c_str());
myPacket->Read(baseEvent);
// Until we have a timestamp-based system, send packets pertaining to more
// than one container (i.e. replies to server requests for container contents)
// only to players who have the container's cell loaded
if (baseEvent->action == BaseEvent::SET && baseEvent->objectChanges.count > 1)
CellController::get()->getCell(&baseEvent->cell)->sendToLoaded(myPacket, baseEvent);
else
myPacket->Send(baseEvent, true);
Script::Call<Script::CallbackIdentity("OnContainer")>(