Closing -> Resuming conversation

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
forrestuv
Posts: 64
Joined: Tue Nov 06, 2018 11:28 am

Closing -> Resuming conversation

Post by forrestuv »

Is there a way to break a conversation in pieces so that each piece can be resumed later?
Example: split conversation in 3 parts

1) Play first part and close
.. do something in the game
2)Play second part and close
.. do something

and so on..
I guess I can add a field that marks every part break but I've not clear how to proceed.
what's the best way to do it?

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

Re: Closing -> Resuming conversation

Post by Tony Li »

Is it possible for the player to stop the first part on any dialogue entry node of the conversation, or only on a specific entry?

If it's a specific entry, you can split it into separate conversations, or set up the followup conversation to start at a specific entry ID. For example, say your conversation is:

[0:START] --> [1:"Bring me food."] --> <END> (player gets food) <RESUME> --> [2:"Yum! Thanks for the food."]

You can start the first part at entry ID 0, and the second part at entry ID 2.


If the player can stop the first part at any entry, you'll want to record the entry ID and then call StopConversation(). (Any luck on the StopConversation issue?) You can use OnConversationLine to record the entry ID:

Code: Select all

int lastEntryID;
void OnConversationLine(Subtitle subtitle) {
    lastEntryID = subtitle.dialogueEntry.id;
}
Then you can start the conversation at that ID:

Code: Select all

DialogueManager.StartConversation(DialogueManager.lastConversationStarted, player.transform, npc.transform, lastEntryID);

Depending on your needs, you might be able to use the conversation position stack Lua functions. But they really serve a different purpose (jumping into and out of sub-conversations), so they might not be the best fit.


A third alternative is to keep the conversation active. When you want to do something in the game between the first and second parts, hide the dialogue panel and free up the player's controls if necessary. To resume the second part, show the dialogue panel and disable the player's controls again.
forrestuv
Posts: 64
Joined: Tue Nov 06, 2018 11:28 am

Re: Closing -> Resuming conversation

Post by forrestuv »

It would stop at a specific entry.
I know I can start a conversation from a specify point, instead my doubt is how I can stop the conversation semi-automatically ?
What's the best way to handle this fragmented conversation?

While I'm here, can I ask if there's a way to filter Conversations by name?(a search filter or something similar) ?
Conversations selection DropDown when having many conversation becomes "user unfriendly" ..it's a bit frustrating selecting items...you have to scroll manually and search for what u want.
I think the Search field would be more useful if it was filtering conversations rather than searching inside current one. :)
User avatar
Tony Li
Posts: 22057
Joined: Thu Jul 18, 2013 1:27 pm

Re: Closing -> Resuming conversation

Post by Tony Li »

A search field is a good idea. I'll look into that for a future version.

Remember that you can use forward slashes in conversation titles to group your conversations. For example, you could title your conversations:
  • Companions/Robot Butler/At Your Service
  • Companions/Robot Butler/Malfunction
  • Desert/Scavenger
  • Desert/Scorpion Herder
  • Jungle/Shaman, etc.
This will group them into submenus "Companions", "Desert", and "Jungle" in the Dialogue Editor, making it much easier to select conversations. The "Companions" submenu will have a sub-submenu for "Robot Butler".


A clean way to automatically stop a fragmented conversation is to specify Conditions on the next node that aren't true. (Or at least until you resume the conversation.)
forrestuv
Posts: 64
Joined: Tue Nov 06, 2018 11:28 am

Re: Closing -> Resuming conversation

Post by forrestuv »

Ah that's the Unity feature. Nice :)
Maybe u can also increase the width of the conversation DropDownmenu?(There's a lot of wasted space) and maybe add a tooltip on it showing the title of current selected conversation?
Another feature that really could help me at the moment would a single conversation importer.
Copy and pasting single nodes from an excel file is really tedious :(
Is there a way to automate this task or maybe can u give me a piece of code to use as a start for a Clipboard excel/text conversation importer?

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

Re: Closing -> Resuming conversation

Post by Tony Li »

forrestuv wrote: Tue Dec 04, 2018 12:41 pmMaybe u can also increase the width of the conversation DropDownmenu?(There's a lot of wasted space) and maybe add a tooltip on it showing the title of current selected conversation?
In the next update, I'll make the dropdown expand to fit the available space, and show a tooltip.
forrestuv wrote: Tue Dec 04, 2018 12:41 pmAnother feature that really could help me at the moment would a single conversation importer.
You can import a single conversation into a second database, and then merge that database into your main database.

What format are you importing?

You can import a single conversation from articy:draft, Neverwinter Nights, and TalkIt. You may also be interested in the JLC Converter that Mografi contributed. You can download it from the Extras page.
forrestuv
Posts: 64
Joined: Tue Nov 06, 2018 11:28 am

Re: Closing -> Resuming conversation

Post by forrestuv »

They gave me an Excel file :roll: therefore I could create a csv or take the content of the clipboard and create a conversation.
forrestuv
Posts: 64
Joined: Tue Nov 06, 2018 11:28 am

Re: Closing -> Resuming conversation

Post by forrestuv »

To be honest I'd like to code a very simple clipboard importer.
I'll take a look at the JLC Converter and thanx for the upcoming changes :)
User avatar
Tony Li
Posts: 22057
Joined: Thu Jul 18, 2013 1:27 pm

Re: Closing -> Resuming conversation

Post by Tony Li »

Then I think JLC Converter will do what you're looking for.
Post Reply