Пример #1
0
        /// <inheritdoc/>
        public virtual void UpdateSkillList()
        {
            var connection = this.player.Connection;

            if (connection is null)
            {
                return;
            }

            this.BuildSkillList();

            using var writer = connection.StartSafeWrite(SkillListUpdate.HeaderType, SkillListUpdate.GetRequiredSize(this.SkillList.Count));
            var packet = new SkillListUpdate(writer.Span)
            {
                Count = (byte)this.SkillList.Count,
            };

            for (byte i = 0; i < this.SkillList.Count; i++)
            {
                var skillEntry = packet[i];
                skillEntry.SkillIndex = i;

                var skill = this.SkillList[i];
                if (skill is not null)
                {
                    skillEntry.SkillNumber = (ushort)skill.Number;
                    if (skill.MasterDefinition is not null)
                    {
                        skillEntry.SkillLevel = (byte)(this.player.SkillList !.GetSkill((ushort)skill.Number)?.Level ?? 0);
                    }
                }
            }

            writer.Commit();
        }
Пример #2
0
        /// <inheritdoc/>
        public override void UpdateSkillList()
        {
            var connection = this.Player.Connection;

            if (connection is null)
            {
                return;
            }

            this.BuildSkillList();

            using var writer = connection.StartSafeWrite(SkillListUpdate.HeaderType, SkillListUpdate.GetRequiredSize(this.SkillList.Count));
            var packet = new SkillListUpdate075(writer.Span)
            {
                Count = (byte)this.SkillList.Count,
            };

            for (byte i = 0; i < this.SkillList.Count; i++)
            {
                var skillEntry = packet[i];
                skillEntry.SkillIndex          = i;
                skillEntry.SkillNumberAndLevel = this.GetSkillNumberAndLevel(this.SkillList[i]);
            }

            writer.Commit();
        }