diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs index 64da9ea22..61f17f86a 100644 --- a/Source/Framework/Constants/PlayerConst.cs +++ b/Source/Framework/Constants/PlayerConst.cs @@ -74,6 +74,8 @@ namespace Framework.Constants //Warmode public const uint WarmodeEnlistedSpellOutside = 269083; + + public const uint SpellExperienceEliminated = 206662; } public struct MoneyConstants diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 5ab226741..964109c9b 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -2353,11 +2353,11 @@ namespace Game.Entities canTalk = false; break; case GossipOptionNpc.DisableXPGain: - if (HasPlayerFlag(PlayerFlags.NoXPGain)) + if (HasPlayerFlag(PlayerFlags.NoXPGain) || IsMaxLevel()) canTalk = false; break; case GossipOptionNpc.EnableXPGain: - if (!HasPlayerFlag(PlayerFlags.NoXPGain)) + if (!HasPlayerFlag(PlayerFlags.NoXPGain) || IsMaxLevel()) canTalk = false; break; case GossipOptionNpc.None: @@ -2595,10 +2595,12 @@ namespace Game.Entities break; case GossipOptionNpc.DisableXPGain: PlayerTalkClass.SendCloseGossip(); + CastSpell(null, PlayerConst.SpellExperienceEliminated, true); SetPlayerFlag(PlayerFlags.NoXPGain); break; case GossipOptionNpc.EnableXPGain: PlayerTalkClass.SendCloseGossip(); + RemoveAurasDueToSpell(PlayerConst.SpellExperienceEliminated); RemovePlayerFlag(PlayerFlags.NoXPGain); break; case GossipOptionNpc.Mailbox: