Page 1 of 2

Quest Problem

Posted: Wed Nov 21, 2018 3:34 pm
by Barto1983
Hello Tony Li,

I have a problem with the quest.

Some event seems to me to be missing.

I have the following quest. The quest is active as you see.
The attachment img01.JPG is no longer available
Now I want to change the status.
I tried it in three different ways.
The attachment img02.JPG is no longer available
img01.JPG
img01.JPG (33.15 KiB) Viewed 1173 times
Unfortunately, none of them go away.

Will I possibly miss an event?

Re: Quest Problem

Posted: Wed Nov 21, 2018 3:34 pm
by Barto1983
img04.JPG
img04.JPG (103.94 KiB) Viewed 1172 times

Re: Quest Problem

Posted: Wed Nov 21, 2018 3:39 pm
by Barto1983
I cant Upload the images

i try with code: Pixelcrushers……...QuestLog.SetQuestState(string,QuestState.Success)
or
Pixelcrushers……...QuestLog.SetQuestState(string,string)

and in the Conversation Dialogue Entry

Script

SetQuestState("Sendphotos","success")


nothing work

Re: Quest Problem

Posted: Wed Nov 21, 2018 5:29 pm
by Tony Li
Hello,

The Quests/Items section of the Dialogue Editor only shows the initial state of the quest:

Image

If you want to show the quest in the quest tracker HUD, tick Trackable and Track on Start.

If you want to see the current runtime state of the quest in play mode, use the Watches tab:

Image

You can also use a Lua Console to check the quest state. In the Lua Console, enter:

Code: Select all

return CurrentQuestState("Sendphotos")
The methods you are using to set the quest state are correct. Summary:
  • To set it using a component, use a Dialogue System Trigger. Add Action > Set Quest State.
  • To set it in a C# script, use QuestLog.SetQuestState().
  • To set it in a dialogue entry node's Script field, use the SetQuestState() Lua function. You can type it manually, or you can use the "..." wizard:
    Image

Also, make sure you've assigned the correct dialogue database to the Dialogue Manager.

Re: Quest Problem

Posted: Thu Nov 22, 2018 2:31 pm
by Barto1983
Hello Tony Li,

Thank you for your help. Always great.

You're right I can watch over the Watcher the quest.

Nevertheless, it does not work as usual with me.

Let's say I have a quest with the initial value active.

My game starts with Scene 1 -> value of the quest is active

My conversation is on. At the end of the conversation I invite Scene 2.

In the first Dialouge Entry, the quest is set to success.
(The watcher shows that the quest is success)

After the Converstion of Scene 2 is over. I invite Scene 1 again.

Now the value of the quest is Active again. But this is wrong, the value should be success.

That was not a problem with the Dialouge Manager 1.9. Somehow he had taken over automatically.

Do I have to adjust somehow something that he knows that the initial value has been overwritten?

Re: Quest Problem

Posted: Thu Nov 22, 2018 6:17 pm
by Tony Li
Hello,

How are you changing scenes?

Try adding a Dialogue System Saver component to the Dialogue Manager. Version 2 uses a new, improved save system. But you need to include Dialogue System Saver for it.

Re: Quest Problem

Posted: Fri Nov 23, 2018 1:30 pm
by Barto1983

Code: Select all

 
 //TODO Sende die Bilder an Jessica
        var Quests = PixelCrushers.DialogueSystem.QuestLog.GetAllQuests(PixelCrushers.DialogueSystem.QuestState.Active);

        foreach (var item in Quests)
        {
            switch (item)
            {
                case "Sendphotos":
                    PixelCrushers.DialogueSystem.QuestLog.SetQuestState("Sendphotos", QuestState.Success); 
                    SceneManager.LoadScene("Jessica01");
                    break;
                default:
                    DialogueManager.ShowAlert("There are no jobs available");
                    break;
            }
        }
When i am finish with the Conversation in the Scene Jessica01, then i have a Registred Lua Function

Code: Select all

public void LoadScene(string name)
    {
        SceneManager.LoadScene(name);
    }
The Switch between the scenes works perfect.


I try to add the Dialogue Manager the Dialogue System Saver (Script) And Check the Value Save Across Scene Change but it doesnt help.

Re: Quest Problem

Posted: Fri Nov 23, 2018 2:24 pm
by Tony Li
Can you use the built-in LoadLevel() sequencer command? This will save data in the current scene, then load the "Jessica01" scene, then apply the saved data to the "Jessica01" scene.

If you can't use LoadLevel() for some reason, please call PixelCrushers.SaveSystem.LoadScene("Jessica01") instead of SceneManager.LoadScene("Jessica01"). This will also save the data, etc., and it will call SceneManager.LoadScene for you.

Please also feel free to send an example to tony (at) pixelcrushers.com. I'll be happy to look at it directly.

Re: Quest Problem

Posted: Fri Nov 23, 2018 3:31 pm
by Barto1983
Thanks a lot for helping me!

Re: Quest Problem

Posted: Fri Nov 23, 2018 3:35 pm
by Tony Li
Did it work?