mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-05-18 20:41:10 +00:00
buff immunities
This commit is contained in:
parent
b7ec08a8e2
commit
3f3c5d9215
@ -45,8 +45,30 @@ void BuffComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUp
|
||||
}
|
||||
}
|
||||
|
||||
outBitStream->Write0(); // buff immunities
|
||||
}
|
||||
if (m_BuffImmunities.empty()) {
|
||||
outBitStream->Write0();
|
||||
} else {
|
||||
outBitStream->Write1();
|
||||
outBitStream->Write<uint32_t>(m_BuffImmunities.size());
|
||||
|
||||
for (const auto& buffImmunity : m_BuffImmunities) {
|
||||
outBitStream->Write<uint32_t>(buffImmunity.first);
|
||||
outBitStream->Write(buffImmunity.second.time);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnDeath);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnZone);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnDamaged);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnRemoveBuff);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnUi);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnLogout);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnUnequip);
|
||||
outBitStream->Write(buffImmunity.second.cancelOnDamageAbsDone);
|
||||
outBitStream->Write0(); // outBitStream->Write(addedByTeammate)
|
||||
outBitStream->Write(buffImmunity.second.applyOnTeammates);
|
||||
// if (addedByTeammate) outBitStream->Write(team mate lwoobjid);
|
||||
outBitStream->Write(buffImmunity.second.refcount);
|
||||
}
|
||||
}
|
||||
} // there is no update serilization, only on initialization
|
||||
}
|
||||
|
||||
void BuffComponent::Update(float deltaTime) {
|
||||
@ -300,6 +322,7 @@ void BuffComponent::UpdateXml(tinyxml2::XMLDocument* doc) {
|
||||
}
|
||||
|
||||
for (const auto& buff : m_Buffs) {
|
||||
if (buff.second.cancelOnLogout || buff.second.cancelOnZone) continue;
|
||||
auto* buffEntry = doc->NewElement("b");
|
||||
|
||||
buffEntry->SetAttribute("id", buff.first);
|
||||
|
@ -147,6 +147,11 @@ private:
|
||||
*/
|
||||
std::map<int32_t, Buff> m_Buffs;
|
||||
|
||||
/**
|
||||
* The currently active buff immunities
|
||||
*/
|
||||
std::map<int32_t, Buff> m_BuffImmunities;
|
||||
|
||||
/**
|
||||
* Parameters (=effects) for each buff
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user