Having trouble with quests and dialogue

Post » Mon Nov 19, 2012 11:05 pm

Hello there, I just signed up today because I've been having some issues with the CK and am all out of hair to pull out.

So I've generally been following along with the great tutorials over at the CK Wiki, modifying things as I go along because I wanted to add my own little flair to things. I am now in the process of adding a quest chain and dialogue to go with it, but I can't seem to get any of it to appear in my game after I load my plugin. For the record, my two created dungeons, associated items, and NPCs do all appear.

I have made an SEQ file as has been suggested for dialogue errors, though that has not fixed my problem.

Let me give you a basic rundown of my quest. You meet an NPC in an inn, you go through a dialogue with him, he offers a quest which sends you off to a local dungeon - pretty basic, run-of-the-mill adventure schlock. I followed along with a video tutorial for quest dialogue by Best in Slot to make certain that I was adding my dialogue properly, even recording my own terrible renderings of my lines and hitting 'Save'.

If you can already see an issue, please feel free to point it out. However, I don't have much time at the moment for screenshots of certain elements (though I can definitely grab some tomorrow, just let me know), but I can throw some hypotheticals out to see if I'm doing something wrong:
  • If a quest is marked as 'Start Game Enabled,' it should pop up in the player's journal upon loading in, right? (Mine isn't doing that.)
  • Under 'Quest Stages', does a beginning stage need to be marked somehow?
  • Similarly, do all stages need to be filled in for a quest's associated dialogue to even function (that is, log entries and scripts)?
  • Do all stages need to have references tied to them?
  • What's the best way to create an alias for a quest object in a cell? (The tutorial shows how to do it for an item in an actor's inventory, but not a standalone item.)
I think that's all I have for now. As I said, if you need to see anything specific I'd be happy to oblige, it's just rather late and I need to grab some sleep. Thanks in advance!
User avatar
Isaac Saetern
 
Posts: 3432
Joined: Mon Jun 25, 2007 6:46 pm

Post » Tue Nov 20, 2012 1:59 am

If a quest is marked as 'Start Game Enabled,' it should pop up in the player's journal upon loading in, right? (Mine isn't doing that.)

No, it will only pop up in your journal when you set an objective to be displayed. That just means that you don't have to start the quest via a script or something. You could however, run a script that when your quest is loaded in the game the first time, it would set an objective displayed

Under 'Quest Stages', does a beginning stage need to be marked somehow?

It depends on what you're trying to do, really. As I said above, if you showed an objective as displayed in some other manner, such as you mention talking to your NPC, that would start your quest. Or, you could put your setobjectivedisplayed in the quest stage, and let the dialog with your NPC set the stage that then displays the objective. There's many ways to do it, so it just depends on what you're trying to do.


Similarly, do all stages need to be filled in for a quest's associated dialogue to even function (that is, log entries and scripts)?

Not at all. I have many stages that are dummy stages, that simply get set to validate or invalidate conditions for dialog and packages. But they have no scripts or content in them. But a stage with a log entry would have to be set for the log entry to show up in the journal. (I hope I didn't misunderstand your question.)

Do all stages need to have references tied to them?


No, see above.

What's the best way to create an alias for a quest object in a cell? (The tutorial shows how to do it for an item in an actor's inventory, but not a standalone item.)

Open you alias tab, create a new alias and give it a name. Let's just call it "chair" for an example. Select a fill type of Specific Reference and just use the Choose Reference dialog thingy to select your reference in your cell.
User avatar
Lisa Robb
 
Posts: 3542
Joined: Mon Nov 27, 2006 9:13 pm

Post » Tue Nov 20, 2012 6:33 am

Thanks for the replies, Balok.

I believe the tutorial has the stages being set through the dialogue, with GetOwningQuest().SetStage(whatever), so then I wouldn't need to have a beginning stage to direct the player to the NPC (I could, but I don't have to, right?).

The tutorial also mentions that using a Specific Reference for an alias is memory intensive, so I initially opted out of that. But after reading your recommendation, and flipping through the other options, it seems like it's my only real choice.

Unfortunately I didn't catch Steam from updating Skyrim, which in turn made the CK incompatible, so I guess I'll have to wait to try some of these things out :(
User avatar
City Swagga
 
Posts: 3498
Joined: Sat May 12, 2007 1:04 am

Post » Tue Nov 20, 2012 12:39 pm

With the recent update to the CK, I was able to go back in and try some things out. Unfortunately I'm back to being stumped, so here I am.

I'm thinking the trouble is in getting the dialogue to connect with the NPC, but I'm still pretty new at this. Recently I started up the game and used a coc command to get to my NPC, after which I did "sqv MalyrArc" to see if my quest was loading. This was the readout (spacing may be off because I just retyped it):

Spoiler
--- Papyrus -----------------------------
QF_MalyrArc_0200BF1D:
Script state = ""
::Alias_Ciro_var = alias Ciro on quest MalyrArc (0300BF1D)
::Alias_Family_Ring_var = alias Family Ring on quest MalyrArc (0300BF1D)
::Alias_Malyr_s_Corpse_var = alias Malyr's Corpse on quest MalyrArc (0300BF1D)
::Alias_Notebook_var = alias Notebook on quest MalyrArc (0300BF1D)
- 4 Aliases for quest 'MalyrArc' (0300BF1D)-
REF 'Ciro'-> NONE
REF 'Malyr's Corpse'-> NONE
REF 'Family Ring'-> NONE
REF 'Notebook'-> NONE
--- Quest State -----------------------------
Enabled? Yes
State: Running
Current Stage: 0
Priority: 60

All this says to me is that I have aliases, they refer to certain things in my plugin, I don't have any references (because my quest isn't started, I assume), the quest is running... but I can't pick it up because when I try to talk to my NPC he just sits there giving me small talk.

My topics are set with GetIsID == 1 for my NPC, who is unique, and the first topic has GetStage == 0 for my quest. Should I be using GetAliasRef instead of GetIsID?
User avatar
Jade Muggeridge
 
Posts: 3439
Joined: Mon Nov 20, 2006 6:51 pm

Post » Tue Nov 20, 2012 10:45 am

I thought I'd provide an update with my tinkering, both for the benefit of anyone having similar issues and because I have a few new problems.

I went through my quest, basically gutted the dialogue and started from scratch, and appended references to each stage. After these changes, I tested it in the game and, what do you know, my dialogue showed up on the NPC! ... but somehow, my old, deleted dialogue showed up on the NPC as well. This showed up both on my main character, and after a COC from the main menu ("fresh" character). Yes, I have ghost dialogue, I'm a bit scared.

The old dialogue had voice files attached that I had recorded, so I'm wondering if that's what's keeping it tied to the NPC.

(The extraneous dialogue didn't appear in the Dialogue Views window in the CK, but it did appear in the Player Dialogue window. Deleting it from Player Dialogue seems to have solved the problem.)

Anyway, aside from that, one of my new problems is that a quest objective isn't updating. I have a ring tied to a Forced Ref for an alias, and the same ring is a Target Ref for the first stage of my quest. The map marker works perfectly, but once the player picks up the ring the next stage of the quest doesn't start. Allow me to go through my Quest window and check off things as I go:
  • Quest Objectives: My first objective, 10, has Ring as a Target Ref. My second objective, 20, has my NPC as a Target Ref.
  • Quest Stages:
    • Stage 10 has "SetObjectiveDisplayed(10)" which I can confirm works in the game.
    • Stage 20 has "SetObjectiveCompleted(10), SetObjectiveDisplayed(20)" (they are on separate lines, fear not). Compiling Stage 20 produces no errors.
    • Stage 30 has no log entry, just "SetObjectiveCompleted(20)" with "Complete Quest" checked. Compiling Stage 30 produces no errors.
  • Quest Alias: I have tried labeling the ring as a Quest Object, but it still isn't working.
I have been generating SEQs after each change, just to be certain.

What's interesting is that I can manually advance the quest by opening the console and typing "setstage QUEST 20" and it pops up with the following objective, and I can finish off the quest from there. It's just the link between the objective and the ring. I'm thinking it's the Forced Ref, but I am totally open to suggestions here.

Edit: Turns out I didn't attach a script to the Ring. Once I did, the quest proceeded as planned.
User avatar
Samantha Jane Adams
 
Posts: 3433
Joined: Mon Dec 04, 2006 4:00 pm

Post » Tue Nov 20, 2012 10:45 am

Good, sounds like you're making progress!
User avatar
Jimmie Allen
 
Posts: 3358
Joined: Sun Oct 14, 2007 6:39 am


Return to V - Skyrim