diff options
| author | Shauren <none@none> | 2010-11-24 16:58:57 +0100 |
|---|---|---|
| committer | Shauren <none@none> | 2010-11-24 16:58:57 +0100 |
| commit | 3fa97ad5385185ae8b85aea032aa853098a62045 (patch) | |
| tree | 076dd5752c75750849a6c40a9e68f4c25fa76d09 /src/server/game/Entities/Player | |
| parent | ce989d701a6a9cf0c978f060457a89b24ddbd365 (diff) | |
Core/Spells: Phaseshift auras can now be stacked
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Entities/Player')
| -rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 78417213e8d..e750c185f69 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2496,18 +2496,22 @@ void Player::SetGameMaster(bool on) getHostileRefManager().setOnlineOfflineState(false); CombatStopWithPets(); - SetPhaseMask(PHASEMASK_ANYWHERE,false); // see and visible in all phases + SetPhaseMask(PHASEMASK_ANYWHERE, false); // see and visible in all phases m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GM, GetSession()->GetSecurity()); } else { // restore phase + uint32 newPhase = 0; AuraEffectList const& phases = GetAuraEffectsByType(SPELL_AURA_PHASE); if (!phases.empty()) - SetPhaseMask(phases.front()->GetMiscValue(), false); - else - SetPhaseMask(PHASEMASK_NORMAL, false); + for (AuraEffectList::const_iterator itr = phases.begin(); itr != phases.end(); ++itr) + newPhase |= (*itr)->GetMiscValue(); + + if (!newPhase) + newPhase = PHASEMASK_NORMAL; + SetPhaseMask(newPhase, false); m_ExtraFlags &= ~ PLAYER_EXTRA_GM_ON; setFactionForRace(getRace()); |
