Page 1 of 2
Kill quest question
Posted: Mon Jan 31, 2022 8:32 am
by om3n
Hello,
I'm sorry if this or something similar has been asked, but I can't seem to figure out or find any similar situations.
I've been playing around with topdown engine and quest machine. However in a test I can't seem to trigger the kill message. I've tried looking over the Orc and Rabbit examples and have been trying to get the count to increment. However I can't seem to make it happen. Is there something I may have missed that I need to hard code somewhere or a way I should call it differently from the demo assets?
I hope the question isn't too vague, I'm terrible at explaining sometimes.
Thanks!
Re: Kill quest question
Posted: Mon Jan 31, 2022 9:31 am
by Tony Li
Hi,
Quest Machine has TopDown Engine integration. Import Assets / Plugins / Pixel Crushers / Quest Machine / Third Party Support / TopDown Engine Support.unitypackage.
You'll find a PDF manual and example scene. The example scene has a quest to kill a ninja whose GameObject is named KoalaNinjaPatrol. This ninja has QuestControl and OnDeathEvent components. The OnDeathEvent component tells QuestControl to send the message "Killed" + "Ninja" when the ninja is killed. The Kill Ninja Quest's "Kill Ninja" node listens for this message.
Re: Kill quest question
Posted: Mon Jan 31, 2022 9:42 am
by om3n
I tried playing with the integration at first but there's an error out of the box so I had wiped it earlier.
Assets\Pixel Crushers\Quest Machine\Third Party Support\TopDown Engine Support\Scripts\PauseTopDown.cs(102,30): error CS1061: 'InputManager' does not contain a definition for 'InputDetectionActive' and no accessible extension method 'InputDetectionActive' accepting a first argument of type 'InputManager' could be found (are you missing a using directive or an assembly reference?)
Re: Kill quest question
Posted: Mon Jan 31, 2022 10:02 am
by Tony Li
What version of TopDown Engine (TDE) are you using? If you're using an older version of TDE, can you back up your project and update TDE?
Does your project have any other scripts named InputManager, other than TDE's? If so, please put that other script in a proper namespace.
Re: Kill quest question
Posted: Mon Jan 31, 2022 10:44 am
by om3n
Ah there was a plugin I was playing around with. Surprised I didn't catch that before.
I'm using the current 2.3.1 version of TDE form december. So the only change I made was setup the camera as I'm using URP and deleted the door to save time. There didn't seem to be any message sent. I can't really find how it's death should be sent as well.
So the quest never completed. I haven't touched any of the 2d tde assets either.
Re: Kill quest question
Posted: Mon Jan 31, 2022 11:00 am
by om3n
Ah there was a plugin I was playing around with. Surprised I didn't catch that before.
I'm using the current 2.3.1 version of TDE form december. So the only change I made was setup the camera as I'm using URP and deleted the door to save time. There didn't seem to be any message sent. I can't really find how it's death should be sent as well.
So the quest never completed. I haven't touched any of the 2d tde assets either.
Edit: there seems to be a missing component added to the one in the new scene. There is quest control, loot and a missing reference on the npc.
Re: Kill quest question
Posted: Mon Jan 31, 2022 11:53 am
by Tony Li
Hi,
Please also import Assets / Plugins / Pixel Crushers / Common / Third Party Support / TopDown Engine Support.unitypackage. I forgot to mention that earlier.
Re: Kill quest question
Posted: Mon Jan 31, 2022 3:14 pm
by om3n
Thanks a lot. The second package made a difference and was able to get most of it figured.
One more question If I may. I'm trying to do a return to quest giver and discuss, however when I return to the quest giver, it doesn't seem to trigger the part of the conversation (Sorry I should mention I also have the dialogue system). It just skips past it to another part. I followed the video tutorial on the integration a few times and can't seem to see anything I've missed.
The conversation tests CurrentQuestState("ShowYourMettle") == "success" and the quest return has Discuss Quest / ShowYourMettle. I'm not really sure where to look to finish this off.
Thanks again for the great tools.
Re: Kill quest question
Posted: Mon Jan 31, 2022 3:50 pm
by Tony Li
Are you using a Dialogue System Conversation quest action in your quest to start the conversation? If so, and if the "return to quest giver" quest node goes to True when you talk to the quest giver, then make sure the quest action is in the quest node's True > Dialogue Text list. It may be better to change the message to "Discussed Quest" so the quest node's state changes after the conversation starts. Then put the Dialogue System Conversation quest action in the quest node's Active > Dialogue Text list. This way it won't mark the entire quest complete when you try to start the conversation.
Re: Kill quest question
Posted: Tue Feb 01, 2022 3:02 am
by om3n
So I've played around a little more and the conversation step is still completely bypassed.
The conditions are:
(CurrentQuestState("ShowYourMettle") == "active") and (GetQuestNodeState("ShowYourMettle", "RetunToRob") == "active")
And script event is:
SetQuestNodeState("ShowYourMettle" "ReturnToRob", "success")
And the condition of ReturnToRob is Discussed Quest:ShowYourMettle
Really a head scratcher. Really not sure where to look/what I've done wrong.
edit: Pretty sure the condition of the quest is active as the test in the log, hud etc displays the text from the states Return to {QUESTGIVER} with correct name etc.