Posted 24 May 2022 - 03:37 PM
Let me start by mentioning that I have used the creation kit for years and have moderate experience with dialogue, but never actually set up a quest until now. Yes, I have read and watched tutorials etc.
A brief description of the quest stages in progress, as listed by stage:
(10) set to "start game enabled"; talk to NPC to receive quest to find key at [random location].
(20) key has been found, now return to NPC
(30) returned to NPC to complete quest.
From testing, stage 10 works fine. I can talk to NPC to receive quest (or tell him no). Log entry is created and map is updated with the objective's random location. Then things are broken from there. I can't get the quest to advance past stage 20 with the next dialogue topic. I have the dialogue set up with scripts to advance the quest to the final stage, but when I change the conditions to display the player response only after finding the key (set up with "GetStage -> MyQuest -> == 20"), that makes none of the dialogue appear for the entire quest. Now the only way I can get the quest to begin is if I remove the quest stage condition.
Then comes the next issue: creation kit crashes the instant I try to look at the dialogue view. I can look at all the dialogue in the player dialogue tab, but crashes every time I try to open the dialogue view. However I can still open any dialogue views from any other quest with no problem. I know the creation kit is kinda wonky, but it seems there's something wrong with my quest.
Any advice would be appreciated! I can post screen shots if that's helpful.
Posted 30 May 2022 - 07:28 PM
I've got the quest going and able to be played and completed. However, there's still one thing I can't overcome: If the player has already found the key before speaking to the quest giver NPC, it skips the beginning dialogue that initiates the quest and is broken at that point. The dialogue option to complete the quest is available, but does not complete the quest.
What I'm after now is one of two things:
1. Disable the key until the NPC has been spoken to and the quest is accepted; or
2. Allow the quest to play out even with the key already obtained.
I've tried several attempts at both options and can't get either one to initiate properly. For option 1, I set the alias ("Object") to "initially disabled" and put a script on stage 10 to enable it. But going in-game, it can still be found before encountering the quest giver NPC. For option 2, I've tried a number of different script fragments in a number of different places, but to no avail. I have now spent many hours trying to reverse-engineer some of the game's quests and still can't achieve proper results. (Instability of the CK is not any help!)
I feel like either way should be pretty easy to accomplish. If someone can set me straight, I would be grateful!
Posted 05 June 2022 - 11:09 PM
Still at it...
I feel like I'm making progress. I restructured my quest to have a trigger to initiate the quest, rather than being start-game enabled. I've got a script attached to the trigger, and is functioning (almost) as desired. The trouble I'm still having (refer to original post) is in the event that the player finds the key before the quest begins. I've put a reference to the key in the startup script, but when I try to enter a condition to run a check to see if the player has obtained said key, as follows:
If Game.GetPlayer().GetItemCount(QuestKey) >= 1
...The compiler complains at me stating that "variable 'QuestKey' is undefined". Although I've seen this in use by other quests in the vanilla game.
The alternative solution of keeping the key disabled until starting the quest is also not working for me.
Again I am no master of Papyrus. In fact, the 30 years of HTML are probably interfering with my ability to learn.
Still in appreciation of any assistance.
Posted 06 June 2022 - 07:15 AM
Key property questkey auto
Dont forget to fill the property with your key in the properties tab on the script.
Edited by TyburnKetch, 06 June 2022 - 07:41 AM.
Posted 06 June 2022 - 07:11 PM
Posted 07 June 2022 - 01:56 AM
Thanks a bunch for your help and feedback. Actually I lied, the script header has 'extends ObjectReference'.
I just went back and double-checked my work; recompiled the startup script (successfully), re-checked the appropriate properties, and tried again, with and without parentheses. I still get the same error when trying to compile the fragment. I feel like there's got to be something I'm missing or unaware of.
I assume the property (key property questkey auto) needs to be in the startup script, and not the fragment script?
By now I have looked at more forums, tutorials, and YouTube videos than I can count, including the link you posted above.
Posted 08 June 2022 - 01:30 AM
If Game.GetPlayer().GetItemCount(Alias_Object) >= 1
...and the compiler returns a handful of errors, rather than just the 'property undefined' message.
Posted 09 June 2022 - 01:40 AM
So, after some more reverse-engineering, I think maybe I have identified the issue this whole time, I'm just not sure how to fix it.
I've got the startup script attached to a trigger I created around a specific area. When the player enters the area, the quest begins and is properly playable through the stages. So I know the quest is functional. However, all the vanilla quests I have looked at have the script attached to the quest. To clarify, in the object window in CK I go to "World Objects -> Activator -> (MyQuestStartupTrigger)" and open the edit dialog box to access the script and its properties. But when I look at some of the 'factory' quests, the only place I can see where they have the script is in by opening the actual quest dialog (i.e. "Quest -> MISC -> MS01 -> Scripts Tab" (The Forsworn Conspiracy)).
Based on that discovery, I wonder: do I have the script in the wrong place? If so, do I simply add it to the quest and define its properties there, or do I link them somehow?
Pardon my ignorance, that's why I'm here for help.
Posted 09 June 2022 - 07:29 AM
I think you need to post your script / scripts.