Dialogue newbie - point-and-click interface

Announcements, support questions, and discussion for the Dialogue System.
SleepyOwl
Posts: 14
Joined: Wed Nov 20, 2024 8:05 pm

Re: Dialogue newbie - point-and-click interface

Post by SleepyOwl »

Thank for the suggestion - I looked at it, and while "Play On Enable" was unticked, I had "Wait One Frame Before Starting" TICKED. I un-ticked that and ran it again a few times and haven't encountered it, and it actually seems to be running smoother too.

Thanks again! Really loving this system, I got the Save System running as well and it's incredibly flexible.

One more question - I want to implement a sort of "insult swordplay" mechanic from Monkey Island, where you fight pirates by trading insults, and learning new ones from the ones you defeat.

Is it possible to use a Scriptable Object to hold new responses, and then have a Response Menu look at that SO database? Essentially just using a list[] of strings of responses. It would save me having to manually write each potential response for each individual fight, however, if this is out of the scope of Dialogue I totally get it.

Or, I wonder, can a Response Menu reference a list of text variables from within the Dialogue System? I know you can set up bools and other variables within Dialogue, but can you make a dynamic Response Menu from that?

What I've done for now with my test 'fight' is I have a set list of responses, and the one you 'learn' is locked off until you hear it from the enemy, at which point you can pick again from the same menu, but the list now shows the learned insult.
User avatar
Tony Li
Posts: 22655
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue newbie - point-and-click interface

Post by Tony Li »

Hi,

No need for a ScriptableObject. You can create a conversation, or a branch of a conversation, that has the insults:

insults1.png
insults1.png (48.6 KiB) Viewed 217 times

Use their Conditions to block off each one until you set a corresponding DS variable:

insults2.png
insults2.png (37.84 KiB) Viewed 217 times

For example, if an NPC says "Your father smells of elderberries," then in that NPC node use the Script field to set the Insult.Elderberries variable true. In the corresponding player node's Conditions, require that this variable is true.

If you're going to use insults in multiple places -- not just in a single, reusable battle conversation -- then you can use the conversation position stack. This is a more advanced feature, so you might want to save it for later experimentation. Briefly, there are two Lua functions you can use in Script fields: PushConversationPosition() records the current conversation state. Then you can use a cross-conversation link to dip into an Insults conversation. At the end of the Insults conversation, use PopConversationPosition() to record to the position that you recorded before dipping into the Insults conversation.
SleepyOwl
Posts: 14
Joined: Wed Nov 20, 2024 8:05 pm

Re: Dialogue newbie - point-and-click interface

Post by SleepyOwl »

Beautiful, that gives me a great starting point! Thank you again.
User avatar
Tony Li
Posts: 22655
Joined: Thu Jul 18, 2013 1:27 pm

Re: Dialogue newbie - point-and-click interface

Post by Tony Li »

Glad to help!
Post Reply