Jump to a specific conversation group

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
OwNathan
Posts: 10
Joined: Fri Jul 28, 2023 8:20 am

Jump to a specific conversation group

Post by OwNathan »

Hello Tony!
Thank you again for helping me randomize Player responses, this time I have another issue related to jumping to different nodes.
I use articy to write dialogues and already use the jump feature extensively, but the current workflow requires several steps we would like to simplify. The workflow/structure is the following:
  • I have a main dialogue in which I must add a dynamic part, so I add a hub/group in which I record as a string variable the destination to which the dialogue should jump back after the dynamic bit is added.
  • After the group, the flow jumps to the conversation in which the dynamic part is chosen randomly among many different NPC entries, most of them with conditions
  • At the end of said conversation, the flow jumps to a specific conversation that only contains nodes with jumps. Each node use the string variable as a condition to jump back to the original conversation, right after the first jump.
  • After that, the conversation proceeds.
Here's a screenshot of how it is in Articy.
Screenshot 2023-08-09 180747.png
Screenshot 2023-08-09 180747.png (122.13 KiB) Viewed 350 times
The hub called "NPC Interjection" change the string variable to "LiberateArea_Interjection_0", and then the system jumps to a different conversation. After that, it accesses to a specific conversation only used for jumps, and this string variable is used to send the flow back to the node called "LiberateArea_Interjection_0".
Screenshot 2023-08-09 181053.png
Screenshot 2023-08-09 181053.png (46.41 KiB) Viewed 350 times
Then, the conversation can normally proceed from the hub called "LiberateArea_Interjection_0"


Now, this system works, but also requires those convoluted steps we'd gladly avoid by simply using a node's unique ID (Title + Conversation)

To do that, we tried to use the Conversation Position Stack code and we added a PushTitleConversationStack to add a specific node to the stack, sorted by its title. It partially works: the correct node is added to the stack, once PopConversationPosition() is used the system jumps to the correct node, but sadly the conversation ends abruptly after that.

I am guessing that the group's links are not processed as intended, and the conversation ends due to the lack of viable NPC or PC options to show. Is that the issue? Is there a way to force the recalculation of all nodes connected to a specific hub?

Thank you very much!
User avatar
Tony Li
Posts: 22112
Joined: Thu Jul 18, 2013 1:27 pm

Re: Jump to a specific conversation group

Post by Tony Li »

Hi,
OwNathan wrote: Wed Aug 09, 2023 12:24 pmI am guessing that the group's links are not processed as intended, and the conversation ends due to the lack of viable NPC or PC options to show. Is that the issue? Is there a way to force the recalculation of all nodes connected to a specific hub?
Sort of. You can call DialogueManager.conversationModel.GetState(dialogueEntry) to reevaluate the links from a dialogue entry. This returns a ConversationState object. Then DialogueManager.conversationController.GotoState(state) to go to that dialogue entry.
OwNathan
Posts: 10
Joined: Fri Jul 28, 2023 8:20 am

Re: Jump to a specific conversation group

Post by OwNathan »

Thank you, we will try to use this asap!
Post Reply