mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-25 22:56:24 +00:00
fix(Core/Player): properly update m_usedTalentCount (#20232)
This commit is contained in:
@@ -2928,8 +2928,11 @@ bool Player::addTalent(uint32 spellId, uint8 addSpecMask, uint8 oldTalentRank)
|
|||||||
newTalent->specMask = addSpecMask;
|
newTalent->specMask = addSpecMask;
|
||||||
newTalent->talentID = talentInfo->TalentID;
|
newTalent->talentID = talentInfo->TalentID;
|
||||||
newTalent->inSpellBook = talentInfo->addToSpellBook && !spellInfo->HasAttribute(SPELL_ATTR0_PASSIVE) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL);
|
newTalent->inSpellBook = talentInfo->addToSpellBook && !spellInfo->HasAttribute(SPELL_ATTR0_PASSIVE) && !spellInfo->HasEffect(SPELL_EFFECT_LEARN_SPELL);
|
||||||
|
|
||||||
m_talents[spellId] = newTalent;
|
m_talents[spellId] = newTalent;
|
||||||
|
|
||||||
|
if (GetActiveSpecMask() & addSpecMask)
|
||||||
|
m_usedTalentCount += (talentPos->rank + 1) - oldTalentRank;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// xinef: if current mask does not cover addMask, add it to iterator and save changes to DB
|
// xinef: if current mask does not cover addMask, add it to iterator and save changes to DB
|
||||||
@@ -2939,6 +2942,9 @@ bool Player::addTalent(uint32 spellId, uint8 addSpecMask, uint8 oldTalentRank)
|
|||||||
if (itr->second->State != PLAYERSPELL_NEW)
|
if (itr->second->State != PLAYERSPELL_NEW)
|
||||||
itr->second->State = PLAYERSPELL_CHANGED;
|
itr->second->State = PLAYERSPELL_CHANGED;
|
||||||
|
|
||||||
|
if (GetActiveSpecMask() & addSpecMask)
|
||||||
|
m_usedTalentCount += (talentPos->rank + 1) - oldTalentRank;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14067,9 +14073,6 @@ void Player::LearnTalent(uint32 talentId, uint32 talentRank, bool command /*= fa
|
|||||||
|
|
||||||
addTalent(spellId, GetActiveSpecMask(), currentTalentRank);
|
addTalent(spellId, GetActiveSpecMask(), currentTalentRank);
|
||||||
|
|
||||||
// xinef: update free talent points count
|
|
||||||
m_usedTalentCount += talentPointsChange;
|
|
||||||
|
|
||||||
if (!command)
|
if (!command)
|
||||||
{
|
{
|
||||||
SetFreeTalentPoints(CurTalentPoints - talentPointsChange);
|
SetFreeTalentPoints(CurTalentPoints - talentPointsChange);
|
||||||
@@ -15021,9 +15024,6 @@ void Player::_LoadTalents(PreparedQueryResult result)
|
|||||||
TalentSpellPos const* talentPos = GetTalentSpellPos(spellId);
|
TalentSpellPos const* talentPos = GetTalentSpellPos(spellId);
|
||||||
ASSERT(talentPos);
|
ASSERT(talentPos);
|
||||||
|
|
||||||
// xinef: increase used talent points count
|
|
||||||
if (GetActiveSpecMask() & specMask)
|
|
||||||
m_usedTalentCount += talentPos->rank + 1;
|
|
||||||
} while (result->NextRow());
|
} while (result->NextRow());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user