Exemplo n.º 1
0
        /// <inheritdoc />
        public void ShowAvailableQuests()
        {
            var connection = this.player.Connection;

            if (connection is null || this.player.OpenedNpc is null)
            {
                return;
            }

            var totalQuests = this.player.GetAvailableQuestsOfOpenedNpc().ToList();
            var questCount  = totalQuests.Count;

            using var writer = connection.StartSafeWrite(AvailableQuests.HeaderType, AvailableQuests.GetRequiredSize(questCount));
            var message = new AvailableQuests(writer.Span)
            {
                QuestCount     = (ushort)questCount,
                QuestNpcNumber = (ushort)this.player.OpenedNpc.Definition.Number,
            };

            for (int i = 0; i < questCount; i++)
            {
                var block = message[i];
                var quest = totalQuests[i];
                block.Number = (ushort)quest.StartingNumber;
                block.Group  = (ushort)quest.Group;
            }

            writer.Commit();
        }
Exemplo n.º 2
0
        /// <inheritdoc />
        public void ShowAvailableQuests()
        {
            if (this.player.OpenedNpc == null)
            {
                return;
            }

            var totalQuests = this.player.OpenedNpc.Definition.Quests.Where(q => q.MinimumCharacterLevel <= this.player.Level && q.MaximumCharacterLevel >= this.player.Level).ToList();
            var questCount  = totalQuests.Count;

            using var writer = this.player.Connection.StartSafeWrite(AvailableQuests.HeaderType, AvailableQuests.GetRequiredSize(questCount));
            var message = new AvailableQuests(writer.Span)
            {
                QuestCount     = (ushort)questCount,
                QuestNpcNumber = (ushort)this.player.OpenedNpc?.Definition.Number,
            };

            for (int i = 0; i < questCount; i++)
            {
                var block = message[i];
                var quest = totalQuests[i];
                block.Number = (ushort)quest.Number;
                block.Group  = (ushort)quest.Group;
            }

            writer.Commit();
        }