From cdf16b8a8441cbe5ad4142ee2642ea246a66b030 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 31 Oct 2022 13:49:02 -0400 Subject: [PATCH] Core/Gossip: Add/Remove spell for disable/enable experience in group Port From (https://github.com/TrinityCore/TrinityCore/commit/a7dbede82ad1453de1382b36434eb89819a38142) --- Source/Framework/Constants/PlayerConst.cs | 2 ++ Source/Game/Entities/Player/Player.cs | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) 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: