quest situation

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
User avatar
supadupa64
Posts: 200
Joined: Sun Mar 06, 2016 9:40 pm
Contact:

quest situation

Post by supadupa64 »

So, I've been using this: CurrentQuestState("Talk to Dave") ~= "active" so the NPC has something to say while the player isn't on the quest yet. Is that little "~" actually a thing? I got it from on of your posts and it works. I have a problem with it though.

I have a conversation condition that is:
(CurrentQuestState("Clean up time") == "active") and
(CurrentQuestState("Collect 10 crates") == "success") and
(Variable["numbrokenitemsfound"] >= 10)


Ok, so I have success with the one and other one is active when I go to turn it in and the NPC says "what's up." The condition I have for the NPC to say "what's up" is:
CurrentQuestState("Talk to Dave") ~= "active"

:shock:

Also, I can't turn in the quest unless this "Talk to Dave" quest is in the player button script for this turn in. I take the success dave scipt out of the player button and I can't turn in everything

I have CurrentQuestState("Talk to Dave") ~= "active" with the "~" in there for when the player isn't on the quest line yet, and speaks the "what's up." The NPC should only say "what's up" if the player is not doing any quest with that NPC.
Last edited by supadupa64 on Sat Apr 30, 2016 9:59 pm, edited 1 time in total.
User avatar
Tony Li
Posts: 22107
Joined: Thu Jul 18, 2013 1:27 pm

Re: CurrentQuestState("Talk to Dave") ~= "active"

Post by Tony Li »

Hi,
  • ~= means is not equal to
  • == means is equal to
So if your dialogue entry is this:
  • Dialogue Text: "What's up?"
    Conditions: CurrentQuestState("Talk to Dave") ~= "active"
Then the dialogue entry will only be added to the list of valid entries if the "Talk to Dave" quest is not active -- that is, if the quest is unassigned or ended in success or failure.

Once the Dialogue System has evaluated all the dialogue entry links, it will have a list of valid entries. Then it will play the first entry in that list.

When you get to that point in the conversation (actually, when you get to the previous entry), open the Dialogue Editor to the Conversations tab and select your conversation. You should see green arrows pointing to the entries whose Conditions are true, and red arrows pointing to entries whose Conditions are false.
User avatar
supadupa64
Posts: 200
Joined: Sun Mar 06, 2016 9:40 pm
Contact:

Re: quest situation

Post by supadupa64 »

You say I should see green arrows? My arrows are white that go from the START to each node.

But what I'm really trying to figure out is this below:

I have a conversation condition that is:
(CurrentQuestState("Clean up time") == "active") and
(CurrentQuestState("Collect 10 crates") == "success") and
(Variable["numbrokenitemsfound"] >= 10)


It should let me complete it since I've met the conditions, but instead it's starting the conversation below with the condition:
CurrentQuestState("Talk to Dave") ~= "active"
User avatar
Tony Li
Posts: 22107
Joined: Thu Jul 18, 2013 1:27 pm

Re: quest situation

Post by Tony Li »

You'll only see green arrows in live view mode -- that is, if you've opened the Dialogue Editor onto an active conversation at runtime. It'll look similar to this:

Image
supadupa64 wrote:But what I'm really trying to figure out is this below:

I have a conversation condition that is:
(CurrentQuestState("Clean up time") == "active") and
(CurrentQuestState("Collect 10 crates") == "success") and
(Variable["numbrokenitemsfound"] >= 10)


It should let me complete it since I've met the conditions, but instead it's starting the conversation below with the condition:
CurrentQuestState("Talk to Dave") ~= "active"
Are you setting these conditions on dialogue entry nodes in the Dialogue Editor? Or are you setting them on separate Conversation Triggers on the NPC?

If you're setting them on dialogue entry nodes, then one of two things must be happening:

1. The first conversation condition (Clean up time, Collect 10 crates, etc.) is false.

or

2. The second condition (Talk to Dave) is also true, and it appears earlier in the list of links or its link has higher priority.

To check #1: Paste in the entire condition as a Watch in the Watches tab at runtime. This way you can check if it's actually true or false.

To check #2: Inspect the previous node. At the bottom of the Inspector view, look at the "Links To:" section.

This is a screenshot of Outline mode, but the "Links To:" section is the same format as the Inspector in Node mode:

Image

Notice that there are two links:
  • Damn. Hold until I return.
  • Collateral damage. Open it.
If these were NPC lines, and if the conditions on both were true, the Dialogue System would always choose "Damn. Hold until I return." If you want it to choose the other one (still assuming both conditions are true), you'd have to use the up arrow button to move it above "Damn. Hold...".
User avatar
supadupa64
Posts: 200
Joined: Sun Mar 06, 2016 9:40 pm
Contact:

Re: quest situation

Post by supadupa64 »

Ok, so I went to the START node and moved the Talk to Dave condition conversation to the bottom and everything worked great. Thanks!
User avatar
Tony Li
Posts: 22107
Joined: Thu Jul 18, 2013 1:27 pm

Re: quest situation

Post by Tony Li »

Great! I'm glad it was an easy thing in the end.
Post Reply