Skip to content

Commit 7b24d02

Browse files
authored
Fix setServerConfigSetting crash (#3886)
1 parent da7af8f commit 7b24d02

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

Server/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10852,26 +10852,35 @@ bool CStaticFunctionDefinitions::ResetMoonSize()
1085210852

1085310853
bool CStaticFunctionDefinitions::SendSyncIntervals(CPlayer* pPlayer)
1085410854
{
10855-
CBitStream BitStream;
10856-
BitStream.pBitStream->Write(g_TickRateSettings.iPureSync);
10857-
BitStream.pBitStream->Write(g_TickRateSettings.iLightSync);
10858-
BitStream.pBitStream->Write(g_TickRateSettings.iCamSync);
10859-
BitStream.pBitStream->Write(g_TickRateSettings.iPedSync);
10860-
BitStream.pBitStream->Write(g_TickRateSettings.iUnoccupiedVehicle);
10861-
BitStream.pBitStream->Write(g_TickRateSettings.iObjectSync);
10862-
BitStream.pBitStream->Write(g_TickRateSettings.iKeySyncRotation);
10863-
BitStream.pBitStream->Write(g_TickRateSettings.iKeySyncAnalogMove);
10864-
10865-
if (pPlayer->CanBitStream(eBitStreamVersion::FixSyncerDistance))
10855+
auto sendSyncIntervalPatket = [](CPlayer* pPlayer)
1086610856
{
10867-
BitStream.pBitStream->Write(g_TickRateSettings.iPedSyncerDistance);
10868-
BitStream.pBitStream->Write(g_TickRateSettings.iUnoccupiedVehicleSyncerDistance);
10869-
}
10857+
CBitStream BitStream;
10858+
BitStream.pBitStream->Write(g_TickRateSettings.iPureSync);
10859+
BitStream.pBitStream->Write(g_TickRateSettings.iLightSync);
10860+
BitStream.pBitStream->Write(g_TickRateSettings.iCamSync);
10861+
BitStream.pBitStream->Write(g_TickRateSettings.iPedSync);
10862+
BitStream.pBitStream->Write(g_TickRateSettings.iUnoccupiedVehicle);
10863+
BitStream.pBitStream->Write(g_TickRateSettings.iObjectSync);
10864+
BitStream.pBitStream->Write(g_TickRateSettings.iKeySyncRotation);
10865+
BitStream.pBitStream->Write(g_TickRateSettings.iKeySyncAnalogMove);
10866+
10867+
if (pPlayer->CanBitStream(eBitStreamVersion::FixSyncerDistance))
10868+
{
10869+
BitStream.pBitStream->Write(g_TickRateSettings.iPedSyncerDistance);
10870+
BitStream.pBitStream->Write(g_TickRateSettings.iUnoccupiedVehicleSyncerDistance);
10871+
}
1087010872

10871-
if (pPlayer)
1087210873
pPlayer->Send(CLuaPacket(SET_SYNC_INTERVALS, *BitStream.pBitStream));
10874+
};
10875+
10876+
10877+
if (pPlayer)
10878+
sendSyncIntervalPatket(pPlayer);
1087310879
else
10874-
m_pPlayerManager->BroadcastOnlyJoined(CLuaPacket(SET_SYNC_INTERVALS, *BitStream.pBitStream));
10880+
{
10881+
for (auto iter = m_pPlayerManager->IterBegin(); iter != m_pPlayerManager->IterEnd(); ++iter)
10882+
sendSyncIntervalPatket(*iter);
10883+
}
1087510884

1087610885
return true;
1087710886
}

0 commit comments

Comments
 (0)