Hi,
I'm currently working on a projet that use Dialogue Systeme and Quest Machine.
I have trouble solving a problem with the counter in Quest Machine quests.
Used as a condition in the quest Machine node quest, when it gets to the set value, the node doesn't become true it remains active.
I thought that once the condition was fulfilled the node went by itself to true, am I wrong ?
I have set the quest like the demo scene (with the carrots or bunnies) and I have tried the wizard option to create the counter. But the node stays active and doesn't become true.
The only time it works was using the wizard with the toogle "Leads to success" true.
Am I missing something important ?
In case it's important, I'm using unity 2021.1.11f1 and Quest Machine 1.2.17.
Thank you
Counter Refresh Problem
Counter Refresh Problem
- Attachments
-
- CounterRefreshProblem_210713.jpg (137.75 KiB) Viewed 2158 times
Re: Counter Refresh Problem
Hi,
That looks perfectly correct. Do the demo quests work? (Harvest Carrots and Pesky Rabbits)
Can you send a reproduction project to tony (at) pixelcrushers.com?
That looks perfectly correct. Do the demo quests work? (Harvest Carrots and Pesky Rabbits)
Can you send a reproduction project to tony (at) pixelcrushers.com?
Re: Counter Refresh Problem
Thank you for your quick response.
I try the demo in my project (previously it was in another project) and it works.
The only thing that differs in the two scenes is the Dialogue systeme Bridge.
So I have tried without the Dialogue Systeme and it works.
In the attachement you have the versions I tried, so you can see how I send the message to the counter.
I don't understand why it doesn't work with the dialogue systeme, in all the versions (as I illustrated it in my previous post) the counter seems to update correctly but not the node it self.
Unfortunatly I can't send you the project as it is. If we can figure it out, I will tried to recreate the process with the demo scene.
Thanks
I try the demo in my project (previously it was in another project) and it works.
The only thing that differs in the two scenes is the Dialogue systeme Bridge.
So I have tried without the Dialogue Systeme and it works.
In the attachement you have the versions I tried, so you can see how I send the message to the counter.
I don't understand why it doesn't work with the dialogue systeme, in all the versions (as I illustrated it in my previous post) the counter seems to update correctly but not the node it self.
Unfortunatly I can't send you the project as it is. If we can figure it out, I will tried to recreate the process with the demo scene.
Thanks
- Attachments
-
- CounterRefreshProblem03_210713.jpg (245.58 KiB) Viewed 2153 times
Re: Counter Refresh Problem
Hi,
If possible, please back up your project and import the latest versions of the Dialogue System, Quest Machine, and the integration package.
If that doesn't fix it, then if you can recreate the issue in the demo scene please send the project to tony (at) pixelcrushers.com.
If possible, please back up your project and import the latest versions of the Dialogue System, Quest Machine, and the integration package.
If that doesn't fix it, then if you can recreate the issue in the demo scene please send the project to tony (at) pixelcrushers.com.
Re: Counter Refresh Problem
Hi,
Thank you for sending the reproduction project. I replied to your email. I'll also post what I found here:
In the Quest Dialogue conversation, you don't need to set the quest state active. Please remove this line from the Script:
Your Script only needs this line:
It will give the quest to the player and activate it.
Also, this may just be an issue in the example that you put together for me, but: Remove the Input Device Manager GameObject from the scene. There can be only one Input Device Manager, and the Dialogue Manager GameObject already has one. When the Input Device Manager GameObject sees that another GameObject (the Dialogue Manager GameObject) has an Input Device Manager component, it destroys the Dialogue Manager GameObject to ensure that there is only one Input Device Manager in the scene. This of course causes problems with the Dialogue System because it requires a Dialogue Manager GameObject.
Thank you for sending the reproduction project. I replied to your email. I'll also post what I found here:
In the Quest Dialogue conversation, you don't need to set the quest state active. Please remove this line from the Script:
Code: Select all
SetQuestState("CounterQuest", "active");
Code: Select all
GiveQuest("Villager","CounterQuest")
Also, this may just be an issue in the example that you put together for me, but: Remove the Input Device Manager GameObject from the scene. There can be only one Input Device Manager, and the Dialogue Manager GameObject already has one. When the Input Device Manager GameObject sees that another GameObject (the Dialogue Manager GameObject) has an Input Device Manager component, it destroys the Dialogue Manager GameObject to ensure that there is only one Input Device Manager in the scene. This of course causes problems with the Dialogue System because it requires a Dialogue Manager GameObject.
Re: Counter Refresh Problem
Hi,
Thanks ! that solved my problem. I never imagined that the problem could come from there
Thanks ! that solved my problem. I never imagined that the problem could come from there
Re: Counter Refresh Problem
The documentation doesn't point out the reason, so I'll describe why it happens in case you're curious.
- The original setup (prior to fixing it) called SetQuestState("CounterQuest", "active") when the only copy of the quest was on the quest giver NPC itself. So the SetQuestState command activated the NPC's copy of the quest, not the player's copy. This caused the NPC's copy to condition to start watching its counter value.
- Then it called GiveQuest("Villager","CounterQuest"), which gave an already-active copy of the quest to the player. Since the quest was already active, the condition was in a state where it looked like it was already watching the counter value, even though in reality only the NPC's copy was watching the counter. So the player copy's condition never actually registered itself to watch the counter value.