Page 1 of 1

SetContinueMode(false); makes conversation to Continue() right away.

Posted: Fri Nov 27, 2020 2:31 am
by fkkcloud
Hi,

SetContinueMode(false); makes the converastion to Continue() right away.
Without SetContinueMode(false), everything seems to work fine.

I have Continue Button set to "Always"


Also, would sequence command "Timeline(mode, timeline, [nowait], [nostop]. [#:binding]...)" work with Continue Button set to "Always"? Would it stop the player for pressing and continue to the next node?
(right now it is not, I think I am missing some setting that makes both SetContinueMode(false) or Timeline(..) without nowait specified to actually just Continue() on press )

Re: SetContinueMode(false); makes conversation to Continue() right away.

Posted: Fri Nov 27, 2020 8:40 am
by Tony Li
Hi,
fkkcloud wrote: Fri Nov 27, 2020 2:31 amSetContinueMode(false); makes the converastion to Continue() right away.
If you want to turn off continue button mode after a duration of time, use something like this:

Code: Select all

SetContinueMode(false)@{{end}}
This will wait for a duration based on the text length. Then it will turn off the continue button requirement.

fkkcloud wrote: Fri Nov 27, 2020 2:31 amAlso, would sequence command "Timeline(mode, timeline, [nowait], [nostop]. [#:binding]...)" work with Continue Button set to "Always"?
No. Timeline and the conversation mostly run independently from each other.

If you want to continue a conversation at a specific point in the timeline:

1. Set the conversation's Continue Button mode to Always.
2. Use a dialogue UI that doesn't show the continue button (so the player can't click it manually).
3. At the point in the timeline, use the Continue Conversation action.

If you want to do the opposite -- pause the timeline until the player clicks the continue button:

1. Set the conversation's Continue Button mode to Always.
2. Use a dialogue UI that shows the continue button.
3. Set the conversation's Default Sequence to:

Code: Select all

Timeline(speed, YourTimelineName, 0); // "Pause" timeline.
required Timeline(speed, YourTimelineName, 1)@Message(WaitForContinue) // "Resume"
Two notes:
  • "YourTimelineName" is the GameObject that has your timeline.
  • To pause the timeline, set the speed to zero. (See the note in Timeline() sequencer command.)

Re: SetContinueMode(false); makes conversation to Continue() right away.

Posted: Tue Mar 02, 2021 11:42 am
by SystemId
Sorry to revive this post, but I am trying to find a way to have a Timeline itself Pause (Set the speed to 0) the Timeline when it reaches the end of a Dialogue Entry, and resume when a continue button is pressed.

The instructions here seem to be similar to what I want, but a little Different.

Do I somehow have the continue button itself (In the Dialogue UI)send some "Message" to somehow continue the timeline? I rather not name the timeline, and just have the timeline that is playing the conversation know to continue.

Re: SetContinueMode(false); makes conversation to Continue() right away.

Posted: Tue Mar 02, 2021 1:52 pm
by Tony Li
Hi,

Try using the Timeline() sequencer command. For example, to pause the speaker's timeline at the end of the duration determined by the text length, set the Sequence to:

Code: Select all

Timeline(speed, speaker, 0)@{{end}}
You might want the next entry to resume the timeline as soon as it starts, so you can set its Sequence (or the Dialogue Manager's Default Sequence) to:

Code: Select all

Timeline(speed, speaker, 1);
Timeline(speed, speaker, 0)@{{end}}

Re: SetContinueMode(false); makes conversation to Continue() right away.

Posted: Tue Mar 02, 2021 4:10 pm
by SystemId
: ( Do you have a link to example projects using a Timeline? I must be doing something incorrect with how I am setting things up.

My Timeline sequencer commands do not seem to be affecting my timeline.

I am using the Dialogue System's Timeline Trigger to play a Timeline Asset on a Linked Director, with my Actors in the bindings.

Re: SetContinueMode(false); makes conversation to Continue() right away.

Posted: Tue Mar 02, 2021 4:23 pm
by Tony Li
Hi,

I don't have a prepared example that does what you're describing. If your Timeline() sequencer commands aren't affecting the timeline, make sure the subject is correct. That's the second parameter to Timeline(). You can specify 'speaker', 'listener', or a GameObject name. If you use 'speaker' or 'listener', you can verify which GameObjects are being used as the speaker and listener by setting the Dialogue Manager's Other Settings > Debug Level to Info. Keep an eye on the Console window while the Timeline() commands run.

Also watch the Console for any errors or warnings.

Finally, double check that the USE_TIMELINE scripting define symbol is set. (Menu item Tools > Pixel Crushers > Dialogue System > Welcome Window.)