Question about Entries
-
- Posts: 3
- Joined: Thu Apr 25, 2024 9:38 pm
Question about Entries
I am making a project that uses the dialogue system. One of the quests in this project requires you to talk to multiple NPCs to complete. I tried to do this by using multiple entries (subtasks) for one quest. I have it so when you talk to each character, one of entries is completed. This does work, when I talk to a character, that entry is completed in the quest log. But when all the entries are completed, the main quest isn't completed. It still shows up as active in the quest log. I want it where when all the entries are completed, the main quest is completed. It there a way to make this happen with entries? Am I misunderstanding what entries are? And if using entries aren't the best way to go about this quest, what is the best way?
Re: Question about Entries
Hi,
Quest entries are the way to go.
Here's an example scene:
DS_TalkToNPCsQuestExample_2024-04-25.unitypackage
It works similarly to How To: Set Up Quests Without Conversations. Each of the NPCs runs a conversation that sets its quest entry to success. Each NPC also has a Dialogue System Events component whose OnConversationEnd() event uses another Dialogue System Trigger on a separate GameObject named "Check Quest". This Dialogue System Trigger checks if all of the quest entries are in the success state. If so, it sets the main quest state to success.
It's admittedly simpler in Quest Machine, where you'd set up a node for each talk-to-NPC requirement, and link those to a node that requires all of the parent nodes to be true (i.e., player has talked to all NPCs):
But it's still very do-able in the Dialogue System.
Quest entries are the way to go.
Here's an example scene:
DS_TalkToNPCsQuestExample_2024-04-25.unitypackage
It works similarly to How To: Set Up Quests Without Conversations. Each of the NPCs runs a conversation that sets its quest entry to success. Each NPC also has a Dialogue System Events component whose OnConversationEnd() event uses another Dialogue System Trigger on a separate GameObject named "Check Quest". This Dialogue System Trigger checks if all of the quest entries are in the success state. If so, it sets the main quest state to success.
It's admittedly simpler in Quest Machine, where you'd set up a node for each talk-to-NPC requirement, and link those to a node that requires all of the parent nodes to be true (i.e., player has talked to all NPCs):
But it's still very do-able in the Dialogue System.