mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-10-11 01:48:07 +00:00
fix: live accurate player flag missions and flag debugging (#1894)
* feat: Add component ID to root component object * fix: live accurate player flag missions and flag debugging Tested that the client reflects the correct server progression after a test map and manually setting a flag off. tested that session flags correctly pick up on progression updates * banana
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
#include "StringifiedEnum.h"
|
||||
|
||||
namespace {
|
||||
std::set<uint32_t> g_TestedMissions = {773, 774, 775, 776, 777}; // TODO Figure out why these missions are broken sometimes
|
||||
std::set<uint32_t> g_TestedMissions = { 773, 774, 775, 776, 777 }; // TODO Figure out why these missions are broken sometimes
|
||||
}
|
||||
|
||||
Mission::Mission(MissionComponent* missionComponent, const uint32_t missionId) {
|
||||
@@ -87,6 +87,7 @@ void Mission::LoadFromXmlDone(const tinyxml2::XMLElement& element) {
|
||||
}
|
||||
|
||||
void Mission::LoadFromXmlCur(const tinyxml2::XMLElement& element) {
|
||||
const auto* const character = GetCharacter();
|
||||
// Start custom XML
|
||||
if (element.Attribute("state") != nullptr) {
|
||||
m_State = static_cast<eMissionState>(std::stoul(element.Attribute("state")));
|
||||
@@ -126,6 +127,12 @@ void Mission::LoadFromXmlCur(const tinyxml2::XMLElement& element) {
|
||||
}
|
||||
|
||||
curTask->SetUnique(uniques);
|
||||
} else if (type == eMissionTaskType::PLAYER_FLAG) {
|
||||
int32_t progress = 0; // Update the progress to not include session flags which are unset between logins
|
||||
for (const auto flag : curTask->GetAllTargets()) {
|
||||
if (character->GetPlayerFlag(flag)) progress++;
|
||||
}
|
||||
curTask->SetProgress(progress, false);
|
||||
}
|
||||
|
||||
index++;
|
||||
|
Reference in New Issue
Block a user