diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 151d554377e..c9097271e96 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -625,18 +625,21 @@ void WorldSession::HandleResurrectResponseOpcode(WorldPacket& recvData) if (!player->IsResurrectRequestedBy(guid)) return; - if (InstanceScript* instance = player->GetInstanceScript()) + if (Player* resurrectingPlayer = ObjectAccessor::GetPlayer(*player, guid)) { - if (instance->IsEncounterInProgress() && player->GetMap()->IsRaid()) + if (InstanceScript* instance = resurrectingPlayer->GetInstanceScript()) { - if (!instance->GetCombatResurrectionCharges()) - return; - else - instance->UseCombatResurrection(); + if (instance->IsEncounterInProgress() && resurrectingPlayer->GetMap()->IsRaid()) + { + if (!instance->GetCombatResurrectionCharges()) + return; + else + instance->UseCombatResurrection(); + } } } - GetPlayer()->ResurrectUsingRequestData(); + player->ResurrectUsingRequestData(); } void WorldSession::SendAreaTriggerMessage(char const* Text, ...) diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index e89333c47c9..8266f9795d4 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -838,11 +838,11 @@ void InstanceScript::UpdatePhasing() void InstanceScript::InitializeCombatResurrections() { if (instance->IsRaid()) - _combatResurrectionCharges = instance->Is25ManRaid() ? 3 : 1; + _combatResurrectionCharges = instance->Is25ManRaid() ? 3 : 1; } void InstanceScript::UseCombatResurrection() { - _combatResurrectionCharges--; + _combatResurrectionCharges--; SendEncounterUnit(ENCOUNTER_FRAME_ADD_COMBAT_RES_LIMIT); } diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 9604b9c70fc..bf51a5f259e 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -314,7 +314,7 @@ class TC_GAME_API InstanceScript : public ZoneScript ObjectInfoMap _gameObjectInfo; ObjectGuidMap _objectGuids; uint32 completedEncounters; // completed encounter mask, bit indexes are DungeonEncounter.dbc boss numbers, used for packets - uint8 _combatResurrectionCharges; // the counter for available battle resurrections + uint8 _combatResurrectionCharges; // the counter for available combat resurrections std::unordered_set _activatedAreaTriggers; std::vector const* const _instanceSpawnGroups;