Page 1 of 1

Custom Controllers and ORK Framework not working well

Posted: Sun Apr 12, 2020 2:50 pm
by DyegoA
So I brought this up on the ORK Framework forums and they recommended coming here as well. Here's the situation:

I'm using ORK Framework, a custom player controller, and Quest Machine. (I also hope to be adding in Dialogue System at some point, but we'll jump over that canyon when we get there.) ORK has a system setup where, during an event, custom controls are blocked so that cursor and keyboard controls are returned to the player, so that the player can do thing like use a menu, click on buttons, etc. etc.

The problem with QM's ORK integration is that QM does not seem to listen to ORK's "blocking event" when a QM dialogue is called. I have an object, I have interaction, and when I go to interact with the Quest Giver the Quest Machine dialogue pops up. Unfortunately, I cannot use my mouse or keyboard to accept or decline the dialogue because my custom control went from being blocked by ORK and then unblocked instantly.

The issue seems to stem from timing. There's helpful chaps on the ORK forum helping me with some custom coding that might do the trick, but I was wondering if, in future, something might be done on the QM+ORK bridge that will help others in my situation.

The current suggestion: "startDialogueNode does not wait for Quest Machine dialogue to be finished. You can ask PixelCrusher to add that feature or try modifying StartDialogueStep.CS to wait until dialogue is finished."

Also, since I'm planning to be adding Dialogue System at some point, I imagine the same thing would need to be done for Dialogue System, to get the ORK events to wait until a dialogue is finished. Some sort of message between QM/Dialogue system and ORK that says "dialogue over" I'm assuming.

Anyway, thanks for any help in this regard!

Re: Custom Controllers and ORK Framework not working well

Posted: Sun Apr 12, 2020 4:41 pm
by Tony Li
Hi,

I'll look into this and get back to you.

Re: Custom Controllers and ORK Framework not working well

Posted: Sun Apr 12, 2020 5:35 pm
by DyegoA
Tony Li wrote: Sun Apr 12, 2020 4:41 pm Hi,

I'll look into this and get back to you.
Thanks a ton, Tony Li! Here's a link to the discussion on the ORK framework forum with more info, in case it helps. Forgot to put it into my original post.

http://forum.orkframework.com/discussio ... hine-issue

Re: Custom Controllers and ORK Framework not working well

Posted: Sun Apr 12, 2020 11:10 pm
by Tony Li
Hi,

That's by design, as some devs may not want to block control when the quest journal is open or when showing the dialogue UI. The intent is that you'd set up your own event to block control when the dialogue UI is open, if you want to.

The Quest Machine Extras page has an updated ORK Framework integration package with an additional convenience component named ORKEventsOnPausePlayer that works similarly to the Dialogue System's ORK bridge component. If you add ORKEventsOnPausePlayer to your player prefab(s), it will automatically block control when Quest Machine's dialogue UI is open -- or, more precisely, whenever Quest Machine sends a "Pause Player" message. You don't have to do anything except add it to your player prefab. However, if you want to run extra events when Quest Machine sends "Pause Player" and "Unpause Player", you can assign them to this component.

(Note for future readers: If you're using Quest Machine 1.2.6 or newer, it already includes this updated package.)

Re: Custom Controllers and ORK Framework not working well

Posted: Mon Apr 13, 2020 6:48 pm
by DyegoA
Thanks so much, Tony Li! It appears to be working for my purposes! Yay! :D

Re: Custom Controllers and ORK Framework not working well

Posted: Mon Apr 13, 2020 8:15 pm
by Tony Li
Awesome! Glad to help.