void HandleLearnPvpTalents(LearnPvpTalents packet) { LearnPvpTalentsFailed learnPvpTalentsFailed = new LearnPvpTalentsFailed(); bool anythingLearned = false; foreach (var pvpTalent in packet.Talents) { TalentLearnResult result = _player.LearnPvpTalent(pvpTalent.PvPTalentID, pvpTalent.Slot, ref learnPvpTalentsFailed.SpellID); if (result != 0) { if (learnPvpTalentsFailed.Reason == 0) { learnPvpTalentsFailed.Reason = (uint)result; } learnPvpTalentsFailed.Talents.Add(pvpTalent); } else { anythingLearned = true; } } if (learnPvpTalentsFailed.Reason != 0) { SendPacket(learnPvpTalentsFailed); } if (anythingLearned) { _player.SendTalentsInfoData(); } }
void HandleLearnTalents(LearnTalents packet) { LearnTalentsFailed learnTalentsFailed = new LearnTalentsFailed(); bool anythingLearned = false; foreach (uint talentId in packet.Talents) { TalentLearnResult result = _player.LearnTalent(talentId, ref learnTalentsFailed.SpellID); if (result != 0) { if (learnTalentsFailed.Reason == 0) { learnTalentsFailed.Reason = (uint)result; } learnTalentsFailed.Talents.Add((ushort)talentId); } else { anythingLearned = true; } } if (learnTalentsFailed.Reason != 0) { SendPacket(learnTalentsFailed); } if (anythingLearned) { GetPlayer().SendTalentsInfoData(); } }