Closed disclosurez closed 1 year ago
can you find which spell is the right spell then? probably there is a talent spell that teaches the usable spell.
I apologize that I cannot continue with wow emulation due to real life problems.
Sorry to hear that, thank you for your very good contributions @mindsear
Ok so this module is completely broken because of that
I managed to clone a fresh ac core and compile it just to test this module only and for me everything seems to be working as it should. Even if I respec or relog, talents are not learnt on spellbook.
Can somebody write down the steps/configuration so I can reproduce?
Edit: Maybe I'm wrong, but.. maybe there's another module that is interfering with this one.
Thank you @mindsear saw your git pull , @poszer could you reproduce this after we talked ?
Changing this:
void sTemplateNPC::LearnTemplateTalents(Player* player)
{
for (TalentContainer::const_iterator itr = m_TalentContainer.begin(); itr != m_TalentContainer.end(); ++itr)
{
if ((*itr)->playerClass == GetClassString(player).c_str() && (*itr)->playerSpec == sTalentsSpec)
{
player->learnSpell((*itr)->talentId);
player->addTalent((*itr)->talentId, player->GetActiveSpecMask(), 0);
}
}
player->SetFreeTalentPoints(0);
player->SendTalentsInfoData(false);
}`
to this:
`void sTemplateNPC::LearnTemplateTalents(Player* player)
{
for (TalentContainer::const_iterator itr = m_TalentContainer.begin(); itr != m_TalentContainer.end(); ++itr)
{
if ((*itr)->playerClass == GetClassString(player).c_str() && (*itr)->playerSpec == sTalentsSpec)
{
switch (player->getClass())
{
case CLASS_WARRIOR:
if ((*itr)->playerSpec == "PvPArms")
{//12328,12294,46924,12323
player->learnSpellHighRank(12328);
player->learnSpellHighRank(12294);
player->learnSpellHighRank(12323);
player->learnSpellHighRank(46924);
//player->AddItem(41398, 1);
}
if ((*itr)->playerSpec == "PvPProtection")
{//12975,12809,20243,46968
player->learnSpellHighRank(12975);
player->learnSpellHighRank(12809);
player->learnSpellHighRank(20243);
player->learnSpellHighRank(46968);
//player->AddItem(44088, 1);
}
break;
case CLASS_PALADIN:
if ((*itr)->playerSpec == "PvPHoly")
{
player->learnSpellHighRank(20216);
player->learnSpellHighRank(31821);
player->learnSpellHighRank(20473);
player->learnSpellHighRank(31842);
player->learnSpellHighRank(53563);
player->learnSpellHighRank(64205);
//player->AddItem(41401, 1);
}
if ((*itr)->playerSpec == "PvPProtection")
{
player->learnSpellHighRank(64205);
player->learnSpellHighRank(20911);
player->learnSpellHighRank(20925);
player->learnSpellHighRank(31935);
player->learnSpellHighRank(53595);
//player->AddItem(41398, 1);
}
if ((*itr)->playerSpec == "PvPRetribution")
{
player->learnSpellHighRank(20066);
player->learnSpellHighRank(35395);
player->learnSpellHighRank(53385);
player->learnSpellHighRank(64205);
//player->AddItem(41398, 1);
}
break;
case CLASS_HUNTER:
if ((*itr)->playerSpec == "PvPBeastmastery")
{//19577,19574,19434,23989
player->learnSpellHighRank(19577);
player->learnSpellHighRank(19574);
player->learnSpellHighRank(19434);
player->learnSpellHighRank(23989);
//player->AddItem(41398, 1);
}
if ((*itr)->playerSpec == "PvPMarksmanship")
{//19434,23989,19506,34490,53209,19503
player->learnSpellHighRank(19434);
player->learnSpellHighRank(23989);
player->learnSpellHighRank(19506);
player->learnSpellHighRank(34490);
player->learnSpellHighRank(53209);
player->learnSpellHighRank(19503);
//player->AddItem(41398, 1);
}
break;
case CLASS_ROGUE:
if ((*itr)->playerSpec == "PvPSubtlety")
{//14185,16511,14183,36554,51713
player->learnSpellHighRank(14185);
player->learnSpellHighRank(16511);
player->learnSpellHighRank(14183);
player->learnSpellHighRank(36554);
player->learnSpellHighRank(51713);
//player->AddItem(41381, 1);
}
break;
case CLASS_PRIEST:
if ((*itr)->playerSpec == "PvPDiscipline")
{//10060,33206,47540,19236, 14751
player->learnSpellHighRank(10060);
player->learnSpellHighRank(33206);
player->learnSpellHighRank(47540);
player->learnSpellHighRank(19236);
player->learnSpellHighRank(14751);
//player->AddItem(41401, 1);
}
if ((*itr)->playerSpec == "PvPHoly")
{//14751,19236,724,34861,47788
player->learnSpellHighRank(14751);
player->learnSpellHighRank(19236);
player->learnSpellHighRank(724);
player->learnSpellHighRank(34861);
player->learnSpellHighRank(47788);
//player->AddItem(41401, 1);
}
if ((*itr)->playerSpec == "PvPShadow")
{//15407,14751,15286,15473,15487,34914,64044,47585
player->learnSpellHighRank(15407);
player->learnSpellHighRank(14751);
player->learnSpellHighRank(15286);
player->learnSpellHighRank(15473);
player->learnSpellHighRank(15487);
player->learnSpellHighRank(34914);
player->learnSpellHighRank(64044);
player->learnSpellHighRank(47585);
//player->AddItem(41401, 1);
}
break;
case CLASS_DEATH_KNIGHT:
if ((*itr)->playerSpec == "PvPUnholy")
{//49039,49158,51052,49222,49206,55090
player->learnSpellHighRank(49039);
player->learnSpellHighRank(49158);
player->learnSpellHighRank(51052);
player->learnSpellHighRank(49222);
player->learnSpellHighRank(49206);
player->learnSpellHighRank(55090);
//player->AddItem(41285, 1);
}
if ((*itr)->playerSpec == "PvPFrost")
{//49143,51271,49203,49796,49039
player->learnSpellHighRank(49143);
player->learnSpellHighRank(51271);
player->learnSpellHighRank(49203);
player->learnSpellHighRank(49796);
player->learnSpellHighRank(49039);
//player->AddItem(41285, 1);
}
break;
case CLASS_SHAMAN:
if ((*itr)->playerSpec == "PvPEnhancement")
{//17364,60103,30823,51533
player->learnSpellHighRank(17364);
player->learnSpellHighRank(60103);
player->learnSpellHighRank(30823);
player->learnSpellHighRank(51533);
//player->AddItem(41398, 1);
}
if ((*itr)->playerSpec == "PvPRestoration")
{//55198,16188,16190,51886,974,61295
player->learnSpellHighRank(55198);
player->learnSpellHighRank(16188);
player->learnSpellHighRank(16190);
player->learnSpellHighRank(51886);
player->learnSpellHighRank(974);
player->learnSpellHighRank(61295);
//player->AddItem(41401, 1);
}
if ((*itr)->playerSpec == "PvPElemental")
{//51490,30706,16166
player->learnSpellHighRank(51490);
player->learnSpellHighRank(30706);
player->learnSpellHighRank(16166);
//player->AddItem(41285, 1);
}
break;
case CLASS_MAGE:
if ((*itr)->playerSpec == "PvPFire")
{//11366,11113,11129,31661,44457,54646
player->learnSpellHighRank(11366);
player->learnSpellHighRank(11113);
player->learnSpellHighRank(11129);
player->learnSpellHighRank(31661);
player->learnSpellHighRank(44457);
player->learnSpellHighRank(54646);
//player->AddItem(41285, 1);
}
if ((*itr)->playerSpec == "PvPFrost")
{//12472,11958,11426,31687,44572,54646
player->learnSpellHighRank(12472);
player->learnSpellHighRank(11958);
player->learnSpellHighRank(11426);
player->learnSpellHighRank(31687);
player->learnSpellHighRank(44572);
player->learnSpellHighRank(54646);
//player->AddItem(41401, 1);
}
break;
case CLASS_WARLOCK:
if ((*itr)->playerSpec == "PvPAffliction")
{//18223,30108,48181,18708,19028
player->learnSpellHighRank(18223);
player->learnSpellHighRank(30108);
player->learnSpellHighRank(48181);
player->learnSpellHighRank(18708);
player->learnSpellHighRank(19028);
//player->AddItem(41382, 1);
}
if ((*itr)->playerSpec == "PvPDestruction")
{//17877,17962,30283,50796,18708,19028
player->learnSpellHighRank(17877);
player->learnSpellHighRank(17962);
player->learnSpellHighRank(30283);
player->learnSpellHighRank(50796);
player->learnSpellHighRank(18708);
player->learnSpellHighRank(19028);
//player->AddItem(41382, 1);
}
break;//Ballance
case CLASS_DRUID:
if ((*itr)->playerSpec == "PvPRestoration")
{//17116,18562,65139,48438
player->learnSpellHighRank(17116);
player->learnSpellHighRank(18562);
//player->learnSpellHighRank(65139);
//player->learnSpell(65139);
player->learnSpellHighRank(48438);
//player->AddItem(41401, 1);
}
if ((*itr)->playerSpec == "PvPFeral")
{//61336,49377,33917,50334
player->learnSpellHighRank(61336);
//player->learnSpellHighRank(49377);
//player->CastSpell(player, 33917);
player->learnSpellHighRank(33876);
player->learnSpellHighRank(33878);
player->learnSpellHighRank(50334);
// player->AddItem(44088, 1);
}
break;
}
player->addTalent((*itr)->talentId, player->GetActiveSpecMask(), 0);
}
}
player->SetFreeTalentPoints(0);
player->SendTalentsInfoData(false);
}
Resolves the issue.
thank you, @KaizerAce could you make a PR?
thank you, @KaizerAce could you make a PR?
Yes, I will do that today
Is this issue not resolved with #24?
Is this issue not resolved with #24?
I don't really know, but I think so. In any case, we could close it and if it was not solved, they could notify us. But I think the same was resolved in #24.
Basically, talents are taught to the player instead of being learnt as talents they are taught as spells. If a player respecs, they still have the talents/spells applied from this npc.
This caused such a major issue on my realm, I had to unlearn all the spells listed by this module and reset everyone's talents.
I then proceeded to disable the talent option entirely in the .cpp and made it just apply glyphs/gear.
Be very careful here.