mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-11-14 15:57:13 +00:00
fix: constructions keep pending health, quick build and equipment changes
The destroyable's health and threat blocks, the quick build's state and the inventory's equipped items are each read behind a flag bit (LWODestroyableComponent::Deserialize 0x00d2bbd0 and the others). DLU cleared their dirty flags when it wrote a construction, which goes only to the client the object came into range of, so a change waiting for the next update never reached the clients already watching: a health bar, a quick build's state, a player's new gear. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -259,13 +259,14 @@ void DestroyableComponent::Serialize(RakNet::BitStream& outBitStream, bool bIsIn
|
||||
if (m_ExplodeFactor != 1.0f) outBitStream.Write(m_ExplodeFactor);
|
||||
}
|
||||
}
|
||||
m_DirtyHealth = false;
|
||||
// A construction goes to one client; the players already watching still need a waiting change
|
||||
if (!bIsInitialUpdate) m_DirtyHealth = false;
|
||||
}
|
||||
|
||||
outBitStream.Write(m_DirtyThreatList || bIsInitialUpdate);
|
||||
if (m_DirtyThreatList || bIsInitialUpdate) {
|
||||
outBitStream.Write(m_HasThreats);
|
||||
m_DirtyThreatList = false;
|
||||
if (!bIsInitialUpdate) m_DirtyThreatList = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user