[6947] Fixed learning some spells triggred by learning another spell.

At prepering learning spell dependences at server load mark
as auto-learned spells from DBC data only leraned
from telents/passive/skill-setting spells.
Expected "regression": if player learn "learning spell" then
he will always auto-learn spell learned by this "learning spell" also.
This commit is contained in:
VladimirMangos 2008-12-26 11:29:07 +03:00
parent 9d431700c3
commit 3c774f9c68
2 changed files with 8 additions and 2 deletions

View file

@ -1723,7 +1723,13 @@ void SpellMgr::LoadSpellLearnSpells()
{ {
SpellLearnSpellNode dbc_node; SpellLearnSpellNode dbc_node;
dbc_node.spell = entry->EffectTriggerSpell[i]; dbc_node.spell = entry->EffectTriggerSpell[i];
dbc_node.autoLearned = true;
// ignore learning not existed spells (broken/outdated/or generic learnig spell 483
if(!sSpellStore.LookupEntry(dbc_node.spell))
continue;
// talent or passive spells or skill-step spells auto-casted, other required explicit dependent learning
dbc_node.autoLearned = GetTalentSpellCost(spell) > 0 || IsPassiveSpell(spell) || IsSpellHaveEffect(entry,SPELL_EFFECT_SKILL_STEP);
SpellLearnSpellMap::const_iterator db_node_begin = GetBeginSpellLearnSpell(spell); SpellLearnSpellMap::const_iterator db_node_begin = GetBeginSpellLearnSpell(spell);
SpellLearnSpellMap::const_iterator db_node_end = GetEndSpellLearnSpell(spell); SpellLearnSpellMap::const_iterator db_node_end = GetEndSpellLearnSpell(spell);

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "6946" #define REVISION_NR "6947"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__