diff --git a/src/game/Entities/Player/Player.cpp b/src/game/Entities/Player/Player.cpp index d0cba859c..e24bae9fe 100644 --- a/src/game/Entities/Player/Player.cpp +++ b/src/game/Entities/Player/Player.cpp @@ -3063,14 +3063,21 @@ void Player::SetGameMaster(bool on) } void Player::SetGMVisible(bool on) -{ +{ + const uint32 VISUAL_AURA = 37800; + if (on) { + if (HasAura(VISUAL_AURA, 0)) + RemoveAurasDueToSpell(VISUAL_AURA); + m_ExtraFlags &= ~PLAYER_EXTRA_GM_INVISIBLE; //remove flag m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GM, SEC_PLAYER); } else { + AddAura(VISUAL_AURA, this); + m_ExtraFlags |= PLAYER_EXTRA_GM_INVISIBLE; //add flag SetAcceptWhispers(false); diff --git a/src/scripts/Commands/cs_gm.cpp b/src/scripts/Commands/cs_gm.cpp index 9268272d2..0967aa170 100644 --- a/src/scripts/Commands/cs_gm.cpp +++ b/src/scripts/Commands/cs_gm.cpp @@ -191,14 +191,10 @@ public: return false; } - const uint32 VISUAL_AURA = 37800; std::string param = (char*)args; if (param == "on") { - if (_player->HasAura(VISUAL_AURA, 0)) - _player->RemoveAurasDueToSpell(VISUAL_AURA); - _player->SetGMVisible(true); //_player->UpdateObjectVisibility(); handler->GetSession()->SendNotification(LANG_INVISIBLE_VISIBLE); @@ -208,7 +204,6 @@ public: if (param == "off") { - _player->AddAura(VISUAL_AURA, _player); _player->SetGMVisible(false); //_player->UpdateObjectVisibility(); handler->GetSession()->SendNotification(LANG_INVISIBLE_INVISIBLE);