diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 1cd3361e2..98e4e79bb 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -2417,13 +2417,20 @@ void Player::SetGameMaster(bool on) } else { - m_ExtraFlags &= ~ PLAYER_EXTRA_GM_ON; + m_ExtraFlags &= ~PLAYER_EXTRA_GM_ON; setFactionForRace(getRace()); RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM); // restore phase AuraList const& phases = GetAurasByType(SPELL_AURA_PHASE); - SetPhaseMask(!phases.empty() ? phases.front()->GetMiscValue() : uint32(PHASEMASK_NORMAL), false); + AuraList const& phases2 = GetAurasByType(SPELL_AURA_PHASE_2); + + if (!phases.empty()) + SetPhaseMask(phases.front()->GetMiscValue(), false); + else if (!phases2.empty()) + SetPhaseMask(phases2.front()->GetMiscValue(), false); + else + SetPhaseMask(PHASEMASK_NORMAL, false); CallForAllControlledUnits(SetGameMasterOffHelper(getFaction()), CONTROLLED_PET | CONTROLLED_TOTEMS | CONTROLLED_GUARDIANS | CONTROLLED_CHARM); @@ -22202,8 +22209,11 @@ uint32 Player::GetPhaseMaskForSpawn() const else { AuraList const& phases = GetAurasByType(SPELL_AURA_PHASE); + AuraList const& phases2 = GetAurasByType(SPELL_AURA_PHASE_2); if (!phases.empty()) phase = phases.front()->GetMiscValue(); + else if (!phases2.empty()) + phase = phases2.front()->GetMiscValue(); } // some aura phases include 1 normal map in addition to phase itself diff --git a/src/game/SpellAuraDefines.h b/src/game/SpellAuraDefines.h index f1c09b9a1..ad55c0812 100644 --- a/src/game/SpellAuraDefines.h +++ b/src/game/SpellAuraDefines.h @@ -361,7 +361,7 @@ enum AuraType SPELL_AURA_323 = 323, SPELL_AURA_324 = 324, SPELL_AURA_325 = 325, - SPELL_AURA_326 = 326, + SPELL_AURA_PHASE_2 = 326, SPELL_AURA_327 = 327, SPELL_AURA_328 = 328, SPELL_AURA_MOD_RUNIC_POWER_REGEN = 329, diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 43ab7ed29..bd985adc4 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -379,7 +379,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS] = &Aura::HandleUnused, //323 0 spells in 4.3.4 &Aura::HandleNULL, //324 2 spells in 4.3.4 test spells &Aura::HandleUnused, //325 0 spells in 4.3.4 - &Aura::HandleNULL, //326 24 spells in 4.3.4 new phase auras + &Aura::HandlePhase, //326 SPELL_AURA_PHASE_2 24 spells in 4.3.4 &Aura::HandleUnused, //327 0 spells in 4.3.4 &Aura::HandleNULL, //328 3 spells in 4.3.4 Eclipse Mastery Driver Passive &Aura::HandleNULL, //329 SPELL_AURA_MOD_RUNIC_POWER_REGEN 3 spells in 4.3.4 @@ -8762,6 +8762,9 @@ void Aura::HandlePhase(bool apply, bool Real) Unit::AuraList const& phases = target->GetAurasByType(SPELL_AURA_PHASE); if (!phases.empty()) target->RemoveAurasDueToSpell(phases.front()->GetId(), GetHolder()); + Unit::AuraList const& phases2 = target->GetAurasByType(SPELL_AURA_PHASE_2); + if (!phases2.empty()) + target->RemoveAurasDueToSpell(phases2.front()->GetId(), GetHolder()); } target->SetPhaseMask(apply ? GetMiscValue() : uint32(PHASEMASK_NORMAL), true); diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 33ce67d30..e5985be03 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -4021,6 +4021,7 @@ void SpellMgr::LoadSpellAreas() { case SPELL_AURA_DUMMY: case SPELL_AURA_PHASE: + case SPELL_AURA_PHASE_2: case SPELL_AURA_GHOST: break; default: diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp index c75d74f68..c11074a18 100644 --- a/src/game/UnitAuraProcHandler.cpp +++ b/src/game/UnitAuraProcHandler.cpp @@ -358,7 +358,7 @@ pAuraProcHandler AuraProcHandler[TOTAL_AURAS] = &Unit::HandleNULLProc, //323 0 spells in 4.3.4 &Unit::HandleNULLProc, //324 2 spells in 4.3.4 test spells &Unit::HandleNULLProc, //325 0 spells in 4.3.4 - &Unit::HandleNULLProc, //326 24 spells in 4.3.4 new phase auras + &Unit::HandleNULLProc, //326 SPELL_AURA_PHASE_2 24 spells in 4.3.4 &Unit::HandleNULLProc, //327 0 spells in 4.3.4 &Unit::HandleNULLProc, //328 3 spells in 4.3.4 Eclipse Mastery Driver Passive &Unit::HandleNULLProc, //329 SPELL_AURA_MOD_RUNIC_POWER_REGEN 3 spells in 4.3.4 diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index b2b475d4a..9b5b4c3b5 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12648" + #define REVISION_NR "12649" #endif // __REVISION_NR_H__