File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
code/components/citizen-server-impl/src/state Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -2137,7 +2137,7 @@ void ServerGameState::UpdateEntities()
21372137 else
21382138 {
21392139 // workaround: force-migrate a stuck entity
2140- if ((time - entity->lastReceivedAt ) > 10s )
2140+ if ((time - entity->lastReceivedAt ) > 5s )
21412141 {
21422142 if (g_oneSyncForceMigration->GetValue () || fx::IsBigMode ())
21432143 {
Original file line number Diff line number Diff line change @@ -1670,6 +1670,31 @@ static void Init()
16701670 playerEntity->routingBucket = bucket;
16711671 }
16721672
1673+ if (oldBucket != bucket)
1674+ {
1675+ auto slotId = client->GetSlotId ();
1676+
1677+ std::shared_lock<std::shared_mutex> lock (gameState->m_entityListMutex );
1678+ for (auto & entity : gameState->m_entityList )
1679+ {
1680+ if (!entity || !entity->syncTree )
1681+ {
1682+ continue ;
1683+ }
1684+
1685+ if (entity->routingBucket == oldBucket)
1686+ {
1687+ std::lock_guard<std::shared_mutex> _ (entity->guidMutex );
1688+ entity->relevantTo .reset (slotId);
1689+
1690+ auto owner = entity->GetClient ();
1691+ if (owner && owner == client)
1692+ {
1693+ entity->wantsReassign = true ;
1694+ }
1695+ }
1696+ }
1697+ }
16731698
16741699 auto eventManager = resourceManager->GetComponent <fx::ResourceEventManagerComponent>();
16751700 /* NETEV onPlayerBucketChange SERVER
You can’t perform that action at this time.
0 commit comments