What I want to do when I click the left mouse button in Dialog Widget is for the Dialog window to shut down, well I got that working, but
the timer handler which is in the other blueprint, I can’t shut it down from inside the widget with the mouse click event. how do I do it?.
The Timer wasn’t done by myself. Someone on here helped me out. to set up the dialog and the timer. But Ive never had to construct a End Dialog Widget Mouse Click Event before. because I don’t know how to build logic in the widgets for pausing the timer… So I need someone
in here to show me the code needed to get the widget mouse button to pause the timer so i can beable to return back again into the game after shutting down the dialog window. Otherwise I am trapped all motionless on the screen for several minutes and can’t do nothing because the timer with the delay loop is still running, .I need to stop the timer but I don’t know how to do it with the On mouse click event.
Promote the TimerHandle return to a variable and set it right after calling the timer. Instead of connecting your node in your “StopDialog” Event, use this variable to stop it correctly.
Edit: But what exactly do you mean by pausing the timer? Literally pause it or End and call the latent function in question? Anyway, you will need to store the reference and use it later, otherwise you’ll be trying to access an invalid value after your StartDialogue event scope has ended
And if you are trying to access a an actor through an widget, the best thing you can do is to store the DialogueMasterBP reference on creation to access it later anytime in your code.
Unfortunately I don’t understand written blueprint logic very well so I need to see a screenshot or screenshots to show me what the correct wiring up is of the nodes needed for canceling out the timer with a double mouse click when I’m inside the widget window so i can shut down the window and exit the timer and return back again into the game.
The reason why i asked for some help with this is because the guy who did help me out with this code to put in my game for the dialogue
matching pics and text got hit by the hurricane in the states because I not heard from him in over a week now, the last message I received was that the storm took out the power so i can’t get his help to try to resolve this issue…
But to answer your question, yes My Timer is in the Actor Blueprint and my Mouse Click event is in the Widget Blueprint so yeah those two blueprints are in TWO DIFFERENT CLASSES AND I don’t know how to set this logic up when it involves two different class types between an actor and a widget because I getting class errors coming from the engine or ''A Çannot inherit B type errors so I need to see screenshots of the setup and the wiring so i can see what references are being used… Because I don’t know what to put in the Mouse Click Event…
Here is the simplest approach I found to implement a Double Click logic. Along with that you can see there’s a logic to actually get a reference of your DialogMasterBP using GetAllActorsOfClass (change the Actor class input to the correct DialogMaster_BP) AND you can put your logic to remove all widgets in the sequence.
The DoubleClickMaxInterval is the maximum amount of time you will leave for the user to actually capture a double click. Note there’s a retriggerable delay instead of a simple Delay node.
Basically is to declare a TimerHandle type variable and store it to be able to call it correctly in StopDialog, and avoid getting an invalid reference in Clear and Invalidate node.
That’s my suggestion for what you’ve shown to me.
I would highly avoid the need of GetAllActorsOfClass and for that I suggest you to store inside your Widget class in any part of your code a reference for the DialogMasterBP and access it directly.
Thanks for showing me that little piece of logic, It worked the window shuts down and lets me get back to the game. I’m curious
as to why it uses a gate in order to do it…
But I have a second bug to try to resolve with this dialog system. Everytime that I step into the trigger I get row 13038 displaying
correctly the first time that I use it, but after that, the index resets to 0 everytime after that… So its not even resetting the trigger values properly.because it if was working properly then the trigger would always bring up row 13038-13057 each time you step in which is the
start of the dialog conversation.
So I suspect that something in STOP DIALOG is causing the index to reset to back to the start of the index after ending the dialog. it shouldn’t be rewinding back like that. but I think the guy who put this code in may have wanted to clear the row index when leaving the
dialog window but that idea hasn’t worked, because what’s it has done is just rewind the index to start at the wrong place in
the data table and get the dialog all stuck in an endless start at index 0 loop.