public static void StartQuestDialog(this IQuestHolder qHolder, Character chr) { chr.OnInteract(qHolder as WorldObject); var list = qHolder.QuestHolderInfo.GetAvailableQuests(chr); if (list.Count > 0) { if (list.Count == 1 && !chr.QuestLog.HasActiveQuest(list[0].Id)) { // start a single quest if there is only one and the user did not start it yet var autoAccept = list[0].Flags.HasFlag(QuestFlags.AutoAccept); QuestHandler.SendDetails(qHolder, list[0], chr, !autoAccept); if (autoAccept) { chr.QuestLog.TryAddQuest(list[0], qHolder); } } else { QuestHandler.SendQuestList(qHolder, list, chr); } } }
public static void StartQuestDialog(this IQuestHolder qHolder, Character chr) { chr.OnInteract(qHolder as WorldObject); List <QuestTemplate> availableQuests = qHolder.QuestHolderInfo.GetAvailableQuests(chr); if (availableQuests.Count <= 0) { return; } if (availableQuests.Count == 1 && !chr.QuestLog.HasActiveQuest(availableQuests[0].Id)) { bool flag = availableQuests[0].Flags.HasFlag((Enum)QuestFlags.AutoAccept); QuestHandler.SendDetails((IEntity)qHolder, availableQuests[0], chr, !flag); if (!flag) { return; } chr.QuestLog.TryAddQuest(availableQuests[0], qHolder); } else { QuestHandler.SendQuestList(qHolder, availableQuests, chr); } }