diff options
author | Gildor <gildor55@gmail.com> | 2022-05-04 23:48:21 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-06-10 19:22:06 +0200 |
commit | bda1fac13f19d38b4e0e07d01d1b068def9aa81c (patch) | |
tree | 964c3b148f690cefada888983476eb1a8ad3b997 /src | |
parent | 5417285a11dfeebd4ba83e6f28f085f9f1b05a67 (diff) |
Scripts/Naxxramas: Fix achievement The Immortal / The Undying (#27937)
(cherry picked from commit ea41ef261e794aca6ee713b64235ba110f66cc49)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 5f6ffbc1be0..3e145abe5b2 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -24,6 +24,7 @@ #include "Map.h" #include "naxxramas.h" #include "TemporarySummon.h" +#include <sstream> BossBoundaryData const boundaries = { @@ -124,7 +125,7 @@ class instance_naxxramas : public InstanceMapScript hadSapphironBirth = false; CurrentWingTaunt = SAY_KELTHUZAD_FIRST_WING_TAUNT; - playerDied = 0; + playerDied = false; } void OnCreatureCreate(Creature* creature) override @@ -249,9 +250,9 @@ class instance_naxxramas : public InstanceMapScript void OnUnitDeath(Unit* unit) override { - if (unit->GetTypeId() == TYPEID_PLAYER && IsEncounterInProgress()) + if (!playerDied && unit->IsPlayer() && IsEncounterInProgress()) { - playerDied = 1; + playerDied = true; SaveToDB(); } @@ -551,6 +552,18 @@ class instance_naxxramas : public InstanceMapScript return false; } + void WriteSaveDataMore(std::ostringstream& data) override + { + data << uint32(playerDied ? 1 : 0); + } + + void ReadSaveDataMore(std::istringstream& data) override + { + uint32 tmpState; + data >> tmpState; + playerDied = tmpState != 0; + } + protected: /* The Arachnid Quarter */ // Anub'rekhan @@ -596,7 +609,7 @@ class instance_naxxramas : public InstanceMapScript uint8 CurrentWingTaunt; /* The Immortal / The Undying */ - uint32 playerDied; + bool playerDied; EventMap events; }; |