SetContinueMode(NotBeforeResponseMenu)

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
EHG Mike Weicker
Posts: 8
Joined: Mon Jul 22, 2019 6:02 pm

SetContinueMode(NotBeforeResponseMenu)

Post by EHG Mike Weicker »

I'm trying to manipulate the ContinueMode inside the sequence fields of a conversation. I can use SetContinueMode(true) and SetContinueMode(false) no problem but everything else fails to do anything.

SetContinueMode(Original) doesn't do anything and leaves the continue mode on false.

The goal is to set the ContinueMode to false at the start of a conversation and then turn it back to NotBeforeResponseMenu at the end of that conversation.

I put

Code: Select all

SetContinueMode(false);
Delay(6)
on the first element and it works great.

I had thought that putting this on the final element of the conversation would do it but it doesn't seem to work.

Code: Select all

Delay(6);
SetContinueMode(NotBeforeResponseMenu)
replacing NotBeforeResponseMenu with true in that last statement does turn it to always but I don't want always, I want NotBeforeResponseMenu.

I'm not sure if I'm making any sense and I get the feeling that I've missed some very significant and obvious thing that is preventing this from working.

other things I've tried:

Code: Select all

SetContinueMode(NotBeforeResponseMenu)@6;
SetContinueMode(ContinueButtonMode.NotBeforeResponseMenu);
SetContinueMode((ContinueButtonMode)(4));
SetContinueMode(PixelCrushers.DialogueSystem.DisplaySettings.SubtitleSettings.ContinueButtonMode.NotBeforeResponseMenu);
User avatar
Tony Li
Posts: 21972
Joined: Thu Jul 18, 2013 1:27 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by Tony Li »

Hi,

What version of the Dialogue System are you using?

Are there any errors or warnings in the Console window? (Make sure your Dialogue Manager's Other Settings > Debug Level is set to Warnings or Info.)
EHG Mike Weicker
Posts: 8
Joined: Mon Jul 22, 2019 6:02 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by EHG Mike Weicker »

I think you might be on to something with the version number. I didn't even think to check that we might be woefully out of date and I was reading newer docs. We are on Version 1.7.6. It looks like the original command should have worked. I did also try that one a few times but maybe not in the right combinations of other things.

Should this work?
In the first conversation node of the sequence:

Code: Select all

SetContinueMode(false);
Delay(6)
Then in the last conversation node of the sequence:

Code: Select all

Delay(6);
SetContinueMode(original)
or does the original command only work for switching in the same sequence line? So would I have to put this in every one

Code: Select all

SetContinueMode(false);
Delay(6);
SetContinueMode(original)
Edit: checked this and it didn't work.

I'm sorry, I'm not sure if we had any console warnings because I was sending this to someone else to try so it's a bit of telephone.

If we did need to update the package version, should it upgrade seamlessly? As in, would we need to do large scale changes to our project? The dialogue database is pretty big at this point.
User avatar
Tony Li
Posts: 21972
Joined: Thu Jul 18, 2013 1:27 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by Tony Li »

Hi,

In general, updating from one version 2.x to another version 2.x is fairly seamless; just import on top of your existing Dialogue System version.

However, updating from version 1.x to 2.x requires an additional step: Upgrading from Version 1.x -- and you'll also want to review the Release Notes for any changes that might be relevant to your project.

That said, SetContinueMode(original) should work in version 1.6.7 and newer. So if you don't want to take the plunge into version 2.x, please ask your tester to reproduce the issue and look for any warnings or errors in the Console window.
EHG Mike Weicker
Posts: 8
Joined: Mon Jul 22, 2019 6:02 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by EHG Mike Weicker »

OK, we are looking at an update but if it is possible to get this functionality without updating, that would be great given how close we are to another big patch. I'm wondering if any of these are close to the right way to do this.

Code: Select all

SetContinueMode(false);
Delay(6);
SetContinueMode(original)

Code: Select all

SetContinueMode(false);
SetContinueMode(original)@{{end}};
Delay(6)

Code: Select all

SetContinueMode(false);
SetContinueMode(original)@6;
Delay(6)
None of these are having the desired effect and I'm not sure what we are doing wrong here. I would like these conversation nodes to continue automatically (without showing the Continue Button) on their own but have the continue mode button be set to original for the next node.
User avatar
Tony Li
Posts: 21972
Joined: Thu Jul 18, 2013 1:27 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by Tony Li »

Hi,

SetContinueMode(original) should work. Is the user perhaps clicking the continue button before the 6-second mark? If so, add the 'required' keyword in front:

Code: Select all

SetContinueMode(false);
required SetContinueMode(original)@6;
Delay(6)
If that doesn't work, and you don't see any errors or warnings in the Console window (make sure the Dialogue Manager's Debug Level is set to Info), here are some ideas:
  • Update to version 1.9.0. It's a relatively low-impact upgrade versus moving to 2.x.
  • Write a custom sequencer command that sets DialogueManager.DisplaySettings.subtitleSettings.continueButton to ContinueButtonMode.
  • .
  • Or send a reproduction project to tony (at) pixelcrushers.com.
EHG Mike Weicker
Posts: 8
Joined: Mon Jul 22, 2019 6:02 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by EHG Mike Weicker »

OK! So it looks like SetContinueMode(original)@6; was working but was working slightly too soon. This caused us to need to press the continue button (which we didn't want). I swapped out the Delay(6) to be Continue()@6 instead and we're away to the races.

In the end, we put this in the sequence field of all nodes in the conversations that we want to behave like this.

Code: Select all

SetContinueMode(false);
SetContinueMode(original)@6;
Continue()@6
Thanks for your help and I'm looking at doing a version update now. Will likely go to the newest 1.x version and hold off on going to 2.x
User avatar
Tony Li
Posts: 21972
Joined: Thu Jul 18, 2013 1:27 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by Tony Li »

Hi,

In that sequence, there's no guarantee that "SetContinueMode(original)@6;" will run before "Continue()@6". They both go into the queue to run at the 6-second mark. If "Continue()@6" runs first, it will immediately advance the conversation and SetContinueMode(original) won't run. Use "required":

Code: Select all

SetContinueMode(false);
required SetContinueMode(original)@6;
Continue()@6
EHG Mike Weicker
Posts: 8
Joined: Mon Jul 22, 2019 6:02 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by EHG Mike Weicker »

Thanks, it seems to be working but it's a good tip. We've updated them to use required now.

Very much appreciate all your help.
User avatar
Tony Li
Posts: 21972
Joined: Thu Jul 18, 2013 1:27 pm

Re: SetContinueMode(NotBeforeResponseMenu)

Post by Tony Li »

Happy to help!
Post Reply