diff options
author | Aqua Deus <95978183+aquadeus@users.noreply.github.com> | 2022-10-30 02:29:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-30 02:29:38 +0200 |
commit | a7dbede82ad1453de1382b36434eb89819a38142 (patch) | |
tree | e05719d73dfd9e1566f95d6ccb3346ae4df3c27e /src | |
parent | 1b6695e51c75da8ac0ac80c1225d2dd9d0242843 (diff) |
Core/Gossip: Add/Remove spell for disable/enable experience in group (#28414)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e717f644369..6ca76288d1f 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -137,6 +137,11 @@ #define DEATH_EXPIRE_STEP (5*MINUTE) #define MAX_DEATH_COUNT 3 +enum PlayerSpells +{ + SPELL_EXPERIENCE_ELIMINATED = 206662 +}; + static uint32 copseReclaimDelay[MAX_DEATH_COUNT] = { 30, 60, 120 }; uint64 const MAX_MONEY_AMOUNT = 99999999999ULL; @@ -13667,11 +13672,11 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId, bool showQues canTalk = false; break; case GossipOptionNpc::DisableXPGain: - if (HasPlayerFlag(PLAYER_FLAGS_NO_XP_GAIN)) + if (HasPlayerFlag(PLAYER_FLAGS_NO_XP_GAIN) || IsMaxLevel()) canTalk = false; break; case GossipOptionNpc::EnableXPGain: - if (!HasPlayerFlag(PLAYER_FLAGS_NO_XP_GAIN)) + if (!HasPlayerFlag(PLAYER_FLAGS_NO_XP_GAIN) || IsMaxLevel()) canTalk = false; break; case GossipOptionNpc::None: @@ -13910,10 +13915,12 @@ void Player::OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 men break; case GossipOptionNpc::DisableXPGain: PlayerTalkClass->SendCloseGossip(); + CastSpell(nullptr, SPELL_EXPERIENCE_ELIMINATED, true); SetPlayerFlag(PLAYER_FLAGS_NO_XP_GAIN); break; case GossipOptionNpc::EnableXPGain: PlayerTalkClass->SendCloseGossip(); + RemoveAurasDueToSpell(SPELL_EXPERIENCE_ELIMINATED); RemovePlayerFlag(PLAYER_FLAGS_NO_XP_GAIN); break; case GossipOptionNpc::Mailbox: |