/// <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(); }
/// <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(); }