Linking to another conversation

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
User avatar
kyuubi
Posts: 52
Joined: Fri May 27, 2016 11:30 pm

Linking to another conversation

Post by kyuubi »

Hi,
I'm trying to achieve something that is common in adventure games and I'm certain possible in DS but I'm struggling.
Basically I have a very large dialog tree with a character. In that tree, it makes sense to have topics that only show if I find a certain object. However a way to trigger the conversation is to show the object to the NPC.~
So I show the object to the NPC, I have a small conversation and then I want to link directly to a group in another conversation.
I can see this is supported in DS, but when I create the link and give it a try, instead of the dialog jumping straight into the group deep in the tree, it just exists the main tree.
I hope that makes sense!
Any thoughts?
Thanks,
Last edited by kyuubi on Fri Dec 23, 2016 6:22 am, edited 1 time in total.
User avatar
kyuubi
Posts: 52
Joined: Fri May 27, 2016 11:30 pm

Re: Linking to another conversation

Post by kyuubi »

Okay so more information.

I can see in debug things like this:

Dialogue System: Lua code 'return Dialog[91].SimStatus ~= "WasDisplayed"' threw exception 'Lookup of field 'SimStatus' in the table element failed because the table element itself isn't in the table.'

So it seems that instead of going to the group and stopping, giving me the menu choices it's basically going straight to the children of the group one at a time and failing them because there is no SimStatus.
User avatar
kyuubi
Posts: 52
Joined: Fri May 27, 2016 11:30 pm

Re: Linking to another conversation

Post by kyuubi »

To further clarify, the SimStatus works fine in the dialog tree itself, but when I link from another conversation it seems to error.
User avatar
Tony Li
Posts: 22057
Joined: Thu Jul 18, 2013 1:27 pm

Re: Linking to another conversation

Post by Tony Li »

Hi,

I'll take a look and get back to you later today. Sorry for the delay. (My basement flooded, and I have to meet with the insurance adjuster and repair company, but I'll be back as soon as I can.)
User avatar
Tony Li
Posts: 22057
Joined: Thu Jul 18, 2013 1:27 pm

Re: Linking to another conversation

Post by Tony Li »

Hi,

Sorry again for the delay!

Are you using SimStatus in your project?

If you are using SimStatus: Dialog[Y] is a shortcut for Conversation[X].Dialog[Y], where X is the current conversation's ID and Y is the dialogue entry ID. When you're evaluating a dialogue entry from a cross-conversation link, the Dialog[] shortcut still points to the original conversation, not the destination's conversation. (The current conversation is still the original conversation because it hasn't actually followed this link yet; it's just evaluating its conditions.) To work around this, use the non-shortcut version: Conversation[#].Dialog[91].SimStatus, where # is the correct conversation ID.

If you aren't using SimStatus directly: Are you using any features that indirectly use SimStatus (that you know of) such as the Dialogue Manager's Display Settings > Input Settings > Em Tag For Old Responses dropdown?
User avatar
kyuubi
Posts: 52
Joined: Fri May 27, 2016 11:30 pm

Re: Linking to another conversation

Post by kyuubi »

Hi Tony,

Works like a charm.

Thanks!
User avatar
Tony Li
Posts: 22057
Joined: Thu Jul 18, 2013 1:27 pm

Re: Linking to another conversation

Post by Tony Li »

Great! And Happy New Year!
hellwalker
Posts: 112
Joined: Tue Jan 19, 2016 11:37 pm

Re: Linking to another conversation

Post by hellwalker »

Hi!
I ran into similar problem, and it's a bit hard hard to use specific ID's because I'm exporting DB from Articy draft.

Is there a way to get and update current Conversation ID by creating custom lua script or sequence?
User avatar
Tony Li
Posts: 22057
Joined: Thu Jul 18, 2013 1:27 pm

Re: Linking to another conversation

Post by Tony Li »

Hi,

For the current conversation, you can use the built-in variable thisID:

Code: Select all

Dialog[thisID].SimStatus ~= "Untouched"
If you need to check a different conversation, I suggest using an articy global variable instead of SimStatus.
Post Reply