aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGildor <gildor55@gmail.com>2022-05-04 23:48:21 +0200
committerGitHub <noreply@github.com>2022-05-04 23:48:21 +0200
commitea41ef261e794aca6ee713b64235ba110f66cc49 (patch)
tree4aee368f21c7fadd2123dc2857af8811222b7705
parentd0b8fb87f29c6fe5a100c4f1f85cad2b349d9619 (diff)
Scripts/Naxxramas: Fix achievement The Immortal / The Undying (#27937)
-rw-r--r--src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
index 9142b003755..2dc69259bac 100644
--- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
@@ -123,7 +123,7 @@ class instance_naxxramas : public InstanceMapScript
hadSapphironBirth = false;
CurrentWingTaunt = SAY_KELTHUZAD_FIRST_WING_TAUNT;
- playerDied = 0;
+ playerDied = false;
}
void OnCreatureCreate(Creature* creature) override
@@ -248,9 +248,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();
}
@@ -552,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
@@ -597,7 +609,7 @@ class instance_naxxramas : public InstanceMapScript
uint8 CurrentWingTaunt;
/* The Immortal / The Undying */
- uint32 playerDied;
+ bool playerDied;
EventMap events;
};