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 HandleLearnPvpTalentsOpcode(LearnPvpTalents packet) { LearnPvpTalentsFailed learnPvpTalentsFailed = new LearnPvpTalentsFailed(); bool anythingLearned = false; foreach (ushort talentId in packet.Talents) { TalentLearnResult result = _player.LearnPvpTalent(talentId, ref learnPvpTalentsFailed.SpellID); if (result != 0) { if (learnPvpTalentsFailed.Reason == 0) { learnPvpTalentsFailed.Reason = (uint)result; } learnPvpTalentsFailed.Talents.Add(talentId); } else { anythingLearned = true; } } if (learnPvpTalentsFailed.Reason != 0) { SendPacket(learnPvpTalentsFailed); } if (anythingLearned) { _player.SendTalentsInfoData(); } }