diff --git a/src/strategy/actions/TrainerAction.cpp b/src/strategy/actions/TrainerAction.cpp index e9004c36..6c38b463 100644 --- a/src/strategy/actions/TrainerAction.cpp +++ b/src/strategy/actions/TrainerAction.cpp @@ -33,13 +33,18 @@ void TrainerAction::Learn(uint32 cost, TrainerSpell const* tSpell, std::ostrings if (spellInfo->Effects[j].Effect == SPELL_EFFECT_LEARN_SPELL) { uint32 learnedSpell = spellInfo->Effects[j].TriggerSpell; - bot->learnSpell(learnedSpell); - learned = true; + if (!bot->HasSpell(learnedSpell)) + { + bot->learnSpell(learnedSpell); + learned = true; + } } } - if (!learned) + if (!learned && !bot->HasSpell(tSpell->spell)) + { bot->learnSpell(tSpell->spell); + } msg << " - learned"; }