Page 1 of 1

SetContinueMode(NotBeforeResponseMenu)

Posted: Tue Aug 30, 2022 6:04 pm
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);

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Tue Aug 30, 2022 7:35 pm
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.)

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Wed Aug 31, 2022 12:07 pm
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.

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Wed Aug 31, 2022 1:20 pm
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.

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Thu Sep 01, 2022 11:37 am
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.

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Thu Sep 01, 2022 1:37 pm
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.

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Fri Sep 02, 2022 1:58 pm
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

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Fri Sep 02, 2022 2:16 pm
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

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Tue Sep 06, 2022 12:09 pm
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.

Re: SetContinueMode(NotBeforeResponseMenu)

Posted: Tue Sep 06, 2022 12:57 pm
by Tony Li
Happy to help!