So I’ve been following the suggested tutorial example with the dialogue functions and yarn. What I have is slightly different since I’m kind of figuring it out as I go but what I have is the exact same outside of some substituted functions I am using to call it.
Basically the main issue I am having is that it does not stop after a line. I have 5 lines of text and I want it to progress each line from the push of a button like the example does. It will expect a button press on the first line, but only the very first time. After that when ever you speak to them it jumps through it all on it’s own. I can get it to progress line by line if I set the “Go to next dialogue” gamepad button as ‘pressed’ instead of ‘released’ but it will only work up to the final line; where it will close the window on it’s own once it reaches the final character. In this instance it will always require 4 button presses though, its only the final line that won;t.
Here’s how the code looks:
So I have the global variable DialogReady as something that turns on when you are in collision with something you can talk to. This turns off and switches to the Dialog variable while the dialogue is running.
I also have the same textScrollSPD variable as the example which is set to .05.
Does anyone have any idea why it might speed through the dialogue despite being so similar? I’ve been racking my brain for a few days on this and just can’t figure it out.
Hi, you can try it like me, it works when I click the “v” button, and changes the text after pressing the button…It also speeds up the text when pressing the button, don’t know if you need that
Here is the example below, hope it helps:
Thanks for the reply!
So I put in what you have and I still seem to have the same issue. Each line progresses on it’s own without requiring a button press. Oddly enough I noticed that if I hold the button down while it is scrolling it will hold the full message on the screen until I release it. Does segmenting things into groups mess with how it functions?
Here is what I have:
I included how the actual dialogue looks in Yarn too. Maybe I am missing a command after each line in yarn to make it stop?
No, you don’t need a stop command at each line. Always compare with the example project when in doubt.
Try using a standard keyboard key released instead of gamepad, or adding a Trigger once, to confirm if this is the issue.
Hmmm, yeah that’s what’s strange is that I basically copied every thing line for line outside of a few conditions which I needed to make it run. Changing the game pad to keyboard presses or adding Trigger once in each of the spots still results in the same issue. I can get it to stop at each line but no matter what the final line never stops and just closes the dialogue.
What’s even weirder is I can add as many lines of text as I want and it works up until the final line. But if I add a line which is empty, or a line with only a period or dash or something, it will skip the final 2 lines or open the dialog box again. So it doesn’t even seem like I can trick it.
It must be some sort of conflict in how I set up the controls or animations but I can’t figure out why, here’s a link to my actual project files, it’ll probably be easier than just looking at screenshots:
Hmm, I’m a bit confused, I thought the issue was that it didn’t stop between lines.
As I said, always compare with the example project.
This is yours:
This is the example:
When the dialogue is finished, the dialogue is not running, so your textbox hides. Add a timer or a keypress if you wish so.
Oh whoops, that was because I was trying what Goku had suggested and forgot to hook the other one back up. If you load TestDialog2 instead of TestDialog3 it is the test I made using the example file. In it the code looks like this:
But both TestDialog2 and TestDialog3 seem to function the exact same in terms of how it displays the text and dialogue window. For each line it stops once the text is done scrolling and if I press ‘b’ it progesses to the next line of text, except for on the final line where it will immediately closes once it is done scrolling. For some reason this is different than the example file where it still requires me to press ‘b’ to close the window.
Try playing the example again because mine closes after the timer.
Yeah the example works fine for me as well which is why I’m not sure where the difference is coming from as I copied it exactly outside of how I was triggering it.
All I changed in my project was I combined the collision and state=“walking” variable into one variable so that I don’t have to make a ton of unique conditions for each npc dialogue down the road so I’m not sure why it’s changing the functionality of the part that is the same as the example.
Like I literally copied from the example and pasted it into mine and then fixed the objects and values so they matched my project. Actually, I just made a whole new json and copied it %100 again, this time I set it up to function exactly like the example by using the collision with NPC condition and the state=“walking” etc. and it only plays the first dialogue line over and over now.
I think the more I try and figure this out the more confused I’m becoming. It has to be something with the conditions but I don’t get why it’s messing with how it’s functioning rather than it just preventing it from functioning at all.
Stop wandering around, focus on your issue and deduce logically where it’s coming from.
If the box closes, look at the event closing the box. Check the conditions, check the actions.
I repeat, in the example, the box closes after some time, not after a key press.