Core/Skills: Check if a skill can be unlearned with SkillRaceClassInfo.dbc data and use max skill level from SkillTiers.dbc
This commit is contained in:
1 parent
2ae5036ad9
commit
afd931550b
8 files changed
+86
-14
No files matched your search
@@ -2608,8 +2608,16 @@ void Spell::EffectLearnSkill(SpellEffIndex effIndex)
|
||||
return;
|
||||
|
||||
uint32 skillid = m_spellInfo->Effects[effIndex].MiscValue;
|
||||
SkillRaceClassInfoEntry const* rcEntry = GetSkillRaceClassInfo(skillid, unitTarget->getRace(), unitTarget->getClass());
|
||||
if (!rcEntry)
|
||||
return;
|
||||
|
||||
SkillTiersEntry const* tier = sSkillTiersStore.LookupEntry(rcEntry->SkillTier);
|
||||
if (!tier)
|
||||
return;
|
||||
|
||||
uint16 skillval = unitTarget->ToPlayer()->GetPureSkillValue(skillid);
|
||||
unitTarget->ToPlayer()->SetSkill(skillid, m_spellInfo->Effects[effIndex].CalcValue(), skillval?skillval:1, damage*75);
|
||||
unitTarget->ToPlayer()->SetSkill(skillid, m_spellInfo->Effects[effIndex].CalcValue(), std::min<uint16>(skillval, 1), tier->MaxSkill[damage - 1]);
|
||||
}
|
||||
|
||||
void Spell::EffectAddHonor(SpellEffIndex /*effIndex*/)
|
||||
|
||||
Reference in new issue
Block a user