forked from mirror/openmw-tes3mp
[Server] Send large ID_CONTAINER packets on a need-to-know basis
This commit is contained in:
parent
791089d342
commit
24251cafd0
2 changed files with 9 additions and 2 deletions
|
@ -50,7 +50,7 @@ void Cell::sendToLoaded(mwmp::WorldPacket *worldPacket, mwmp::BaseEvent *baseEve
|
||||||
for (auto pl : plList)
|
for (auto pl : plList)
|
||||||
{
|
{
|
||||||
if (pl->guid == baseEvent->guid) continue;
|
if (pl->guid == baseEvent->guid) continue;
|
||||||
worldPacket->Send(baseEvent, pl->guid);
|
worldPacket->Send(baseEvent, pl->guid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -598,7 +598,14 @@ void Networking::processWorldPacket(RakNet::Packet *packet)
|
||||||
player->npc.mName.c_str());
|
player->npc.mName.c_str());
|
||||||
|
|
||||||
myPacket->Read(baseEvent);
|
myPacket->Read(baseEvent);
|
||||||
myPacket->Send(baseEvent, true);
|
|
||||||
|
// 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")>(
|
Script::Call<Script::CallbackIdentity("OnContainer")>(
|
||||||
player->getId(),
|
player->getId(),
|
||||||
|
|
Loading…
Reference in a new issue