示例#1
0
        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();
            }
        }
示例#2
0
        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();
            }
        }