Page 1 of 1

Jump to a specific conversation group

Posted: Wed Aug 09, 2023 12:24 pm
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 352 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 352 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!

Re: Jump to a specific conversation group

Posted: Wed Aug 09, 2023 3:35 pm
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.

Re: Jump to a specific conversation group

Posted: Thu Aug 10, 2023 7:45 am
by OwNathan
Thank you, we will try to use this asap!