Page 1 of 3
Imported quest machine, already had dialogue system
Posted: Fri Sep 29, 2023 2:20 am
by hipsterdufus
Hey there, I am going to try this asset out. I brought it into my project which already had Dialogue System. I updated both to the latest versions but I was getting an error in UITools.cs on line 144. It is complaining about too many parameters:
Code: Select all
UIUtility.Select(selectable, allowStealFocus, eventSystem);
I removed the third parameter and it compiles now but was wondering if that's okay or did I do something wrong with my import? Thank you.
Re: Imported quest machine, already had dialogue system
Posted: Fri Sep 29, 2023 8:08 am
by Tony Li
Hi,
Reimport the Dialogue System. The Dialogue System, Love/Hate, and Quest Machine share some common code to keep your project smaller and avoid redundant code. A small update was published for the Dialogue System, but the corresponding updates for Love/Hate and Quest Machine aren't on the store yet, so the latest version of the common code is in the Dialogue System. I expect the corresponding updates for LH and QM to be on the store today, at which point you'll once again be able to import in any order.
Re: Imported quest machine, already had dialogue system
Posted: Fri Sep 29, 2023 11:19 am
by hipsterdufus
Thanks, I updated and it's working now.
I'm having a hard time finding the documentation for the Dialogue System integration. It says it's in the Quest System's manual but I don't see any specifics. I just want to try controlling the quest system through dialogue system's Lua commands (or write my own) as well as through sequencer commands. Would that be easy to do?
Re: Imported quest machine, already had dialogue system
Posted: Fri Sep 29, 2023 11:33 am
by Tony Li
Hi,
Import Plugins > Pixel Crushers > Quest Machine > Third Party Support > Dialogue System Support.unitypackage.
This will create a folder named Plugins > Pixel Crushers > Quest Machine > Third Party Support > Dialogue System containing the integration and PDF manual.
Re: Imported quest machine, already had dialogue system
Posted: Fri Sep 29, 2023 4:35 pm
by hipsterdufus
Thanks that's a good starting point. I'm having some issues seeing anything happening during runtime but maybe you can help me at a high level. Can you advise me on how you would go about doing this? I already have a messaging system so I'd like to keep using mine, and I don't think I need the offer quest conditions but I'm not sure. In my game, when the player talks to an NPC I already have logic in a C# script to determine what to do. I'd like to check the state of a bunch of quests and if one is available (I guess grantable is not a state coming from Dialogue system?) I would start a dialogue conversation to grant that quest. Then if the player talks to the same NPC and the quest is active, The same conversation would start up - say TutorialQuest1 - and this time it would show the quest in progress conversation because of some lua conditions within the conversation. I suppose I'm mainly trying to utilize the node system with runtime debugging. It looks like there's a way to start a conversation within the quest node. I'm not clear on how to trigger that exactly. Can the quest itself handle the logic of what dialogue conversation to go to when the NPC is talked to or should I put that in my C# script or handle it within the conversation lua? Or maybe it would be easiest to just use the Quest Machine dialogue UI? Sorry these are probably basic questions, I will continue trying and learning over the next couple days.
Re: Imported quest machine, already had dialogue system
Posted: Fri Sep 29, 2023 9:11 pm
by Tony Li
Hi,
It sounds like you want to control Quest Machine quests through the Dialogue System, which you can absolutely do. Use the Lua functions that the integration provides. You can check if a quest is offerable, give the quest from a quest giver to the player, advance a quest state in the player's quest journal, etc. If you want the quest itself to know if it's currently offerable, you will want to use offer conditions.
Re: Imported quest machine, already had dialogue system
Posted: Sat Sep 30, 2023 11:04 am
by hipsterdufus
I have my quest giver NPC with several quests all set up with their offerable conditions. When the player talks to the NPC I'm calling questgiver.StartDialogueWithPlayer(). My understanding is the QuestGiver component should open the default DialogueUI since I don't have it referenced. How is the default dialogue UI defined? Because I think it's trying to open my Dialogue System UI and it's locking up my game. I am open to trying the normal quest giver UI for starters if it's easier to trigger. Thank you for your time.
Re: Imported quest machine, already had dialogue system
Posted: Sat Sep 30, 2023 3:09 pm
by hipsterdufus
You can disregard previous message. I made some progress. I am able to see the dialogue offer text. I'd like to start a conversation at a specific node but for some reason it won't let me tick "jump to entry ID" in the offer text for dialogue conversations. Is that a limitation?
Re: Imported quest machine, already had dialogue system
Posted: Sat Sep 30, 2023 7:39 pm
by Tony Li
Hi,
Try importing the current version of the Dialogue System Support package if you haven't already. It should allow you to specify the starting entry ID.
Re: Imported quest machine, already had dialogue system
Posted: Sat Sep 30, 2023 8:26 pm
by hipsterdufus
Hmm, that's weird it let me import. I am 99% sure I already did that since I have the components already...I notice there are multiple third party packages that are duplicated maybe I imported the wrong one? Maybe that's why I'm having some strange issues. I still can't tick the jump to node option.