diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Creature/Trainer.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Trainer.cpp b/src/server/game/Entities/Creature/Trainer.cpp index 3f5294b069d..73aab6e4151 100644 --- a/src/server/game/Entities/Creature/Trainer.cpp +++ b/src/server/game/Entities/Creature/Trainer.cpp @@ -115,6 +115,16 @@ namespace Trainer if (trainerSpellInfo->IsPrimaryProfessionFirstRank() && !player->GetFreePrimaryProfessionPoints()) return false; + for (SpellEffectInfo const& effect : trainerSpellInfo->GetEffects()) + { + if (!effect.IsEffect(SPELL_EFFECT_LEARN_SPELL)) + continue; + + SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(effect.TriggerSpell, DIFFICULTY_NONE); + if (learnedSpellInfo && learnedSpellInfo->IsPrimaryProfessionFirstRank() && !player->GetFreePrimaryProfessionPoints()) + return false; + } + return true; } |