diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 22a801636..a846037cb 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14137,11 +14137,22 @@ void Player::ActivateSpec(uint8 spec) } // xinef: apply glyphs from second spec - if(GetActiveSpec() != oldSpec) + if (GetActiveSpec() != oldSpec) + { for (uint8 slot = 0; slot < MAX_GLYPH_SLOT_INDEX; ++slot) - if (uint32 glyphId = m_Glyphs[GetActiveSpec()][slot]) + { + uint32 glyphId = m_Glyphs[GetActiveSpec()][slot]; + if (glyphId) + { if (GlyphPropertiesEntry const* glyphEntry = sGlyphPropertiesStore.LookupEntry(glyphId)) + { CastSpell(this, glyphEntry->SpellId, TriggerCastFlags(TRIGGERED_FULL_MASK & ~(TRIGGERED_IGNORE_SHAPESHIFT | TRIGGERED_IGNORE_CASTER_AURASTATE))); + } + } + + SetGlyph(slot, glyphId, true); + } + } m_usedTalentCount = spentTalents; InitTalentForLevel();