Quest Making: Checking Whether Former Quest Fulfilled

Post » Thu Jun 21, 2012 5:26 am

Replace the GetOwningQuest() with a alias name of the quest, or introduce a new quest property and put it in there.

Do you mean something like "LBGQuest10().SetStage(10)" ?

Or maybe make a property for it?
User avatar
Kim Bradley
 
Posts: 3427
Joined: Sat Aug 18, 2007 6:00 am

Post » Thu Jun 21, 2012 7:47 am

When I take out the check "if FirstQuest.GetStage() > 20 " the NPC comes to the bar stool and lips the words and everything hangs. (as in I just sit there looking around)

1. I'm pretty sure nothing else is happening, because you do not have a scene called BarScene? (Have you made a scene called that?) - But I think everything up to that point is working fine

2. GetStage will return 0 ... As 10 is the only other stage. To make absolutely sure, in Stage 10 of Quest2 comment out the "barscene.start" -with a ; - and add
debug.messagebox("Stage 10 has been set!")

Go run your test again ... do you see the messagebox?
User avatar
emma sweeney
 
Posts: 3396
Joined: Fri Sep 22, 2006 7:02 pm

Post » Thu Jun 21, 2012 5:51 am

Do you mean something like "LBGQuest10().SetStage(10)" ?

At the top of your script:

Quest Property LBGQuest10

And then:

LBGQuest10().SetStage(10)

And make sure to adjust script properties accordingly.

Or do it with an alias property.
User avatar
Tom Flanagan
 
Posts: 3522
Joined: Sat Jul 21, 2007 1:51 am

Post » Thu Jun 21, 2012 6:41 am

1. I'm pretty sure nothing else is happening, because you do not have a scene called BarScene? (Have you made a scene called that?) - But I think everything up to that point is working fine

2. GetStage will return 0 ... As 10 is the only other stage. To make absolutely sure, in Stage 10 of Quest2 comment out the "barscene.start" -with a ; - and add
debug.messagebox("Stage 10 has been set!")

Go run your test again ... do you see the messagebox?

On stage 10 there is a fragment with "BarScene.start()"

Under the Scenes tab there is only "LBGQuest10Scene" which holds the dialog etc.

I'll test for stage 10 now brb
User avatar
jess hughes
 
Posts: 3382
Joined: Tue Oct 24, 2006 8:10 pm

Post » Thu Jun 21, 2012 3:58 pm

As soon as I clicked on the stool I received the message that stage 10 was set.
User avatar
Danielle Brown
 
Posts: 3380
Joined: Wed Sep 27, 2006 6:03 am

Post » Thu Jun 21, 2012 2:09 pm

At the top of your script:

Quest Property LBGQuest10

And then:

LBGQuest10().SetStage(10)

And make sure to adjust script properties accordingly.

Or do it with an alias property.

It won't compile

Scriptname LBGQuest10BarStoolScript extends ReferenceAlias  ReferenceAlias Property PlayerStool  AutoQuest Property LBGQuest10Quest Property FirstQuest AutoReferenceAlias Property OtherStool  Auto  Event OnActivate(ObjectReference akActivator)if(akActivator == game.getPlayer() && GetOwningQuest().GetStage() == 0)   LBGQuest10().SetStage(10)endif EndEvent
User avatar
HARDHEAD
 
Posts: 3499
Joined: Sun Aug 19, 2007 5:49 am

Post » Thu Jun 21, 2012 5:22 pm

It won't compile

Oups, I've forgot the auto:
Quest Property LBGQuest10 Auto
User avatar
Stefanny Cardona
 
Posts: 3352
Joined: Tue Dec 19, 2006 8:08 pm

Post » Thu Jun 21, 2012 6:26 am

As soon as I clicked on the stool I received the message that stage 10 was set.

Right then.

Everything is working just fine :) (be happy!)

What is wrong is that you have not created a SCENE called BarScene.

So ... after the NPC comes to sit on the stool, what do you want to happen next? Did you intend there to be a scene? If so, one needs to be created - and then started from the script.
User avatar
Marine Arrègle
 
Posts: 3423
Joined: Sat Mar 24, 2007 5:19 am

Post » Thu Jun 21, 2012 6:24 pm

Oups, I've forgot the auto:
Quest Property LBGQuest10 Auto

I've stripped the script way down and it still won't compile:

Scriptname LBGQuest10BarStoolScript extends ReferenceAlias  Quest Property LBGQuest10 AutoEvent OnActivate(ObjectReference akActivator)if(akActivator == game.getPlayer() && GetOwningQuest().GetStage() == 0)   LBGQuest10().SetStage(10)endif EndEvent
User avatar
natalie mccormick
 
Posts: 3415
Joined: Fri Aug 18, 2006 8:36 am

Post » Thu Jun 21, 2012 6:32 am

Right then.

Everything is working just fine :smile: (be happy!)

What is wrong is that you have not created a SCENE called BarScene.

So ... after the NPC comes to sit on the stool, what do you want to happen next? Did you intend there to be a scene? If so, one needs to be created - and then started from the script.

I don't recall a bar scene being created in the tut :/

I'll rewatch it
User avatar
Christine Pane
 
Posts: 3306
Joined: Mon Apr 23, 2007 2:14 am

Post » Thu Jun 21, 2012 6:10 am

I don't recall a bar scene being created in the tut :/

I'll rewatch it
I think you are right ... The tutorial went as far as getting you to that stage (it is basically showing you how to start a quest with a courier and a "meeting" ... and one suggestion to go on from there is a scene).

You can check without watching ... Just go into your Quests and click the Scenes tabs ... are any listed? (I doubt it)

So, the question is: Now the NPC is sitting beside the player ... What do you want to happen?
User avatar
Jordyn Youngman
 
Posts: 3396
Joined: Thu Mar 01, 2007 7:54 am

Post » Thu Jun 21, 2012 10:27 am

I've stripped the script way down and it still won't compile:

How should I know I have to tell you anything in detail?

This...

LBGQuest10().SetStage(10) 

can't work, because it's supposed to look like this...

LBGQuest10.SetStage(10) 

Also, try using GetStageDone instead of GetStage.
User avatar
Rudi Carter
 
Posts: 3365
Joined: Fri Sep 01, 2006 11:09 pm

Post » Thu Jun 21, 2012 6:20 am

I think you are right ... The tutorial went as far as getting you to that stage (it is basically showing you how to start a quest with a courier and a "meeting" ... and one suggestion to go on from there is a scene).

You can check without watching ... Just go into your Quests and click the Scenes tabs ... are any listed? (I doubt it)

So, the question is: Now the NPC is sitting beside the player ... What do you want to happen?

Yeah...the only scene is "LBGQuest10Scene" with the dialog etc.

However, in stage 10 there is a fragment called "BarScene.start()"...you already know that, but there is a property called "BarScene" which is set to the LBGQuest10Scene. I don't know if that counts as a bar scene or not or if it aliases the bar scene to the LBGQuest10Scene.

Once the NPC is sitting down he's supposed to tell you what is happening, through the custom recording, and hand you a note...then stand up and leave. But he lips a few lines and then we both sit there.
User avatar
steve brewin
 
Posts: 3411
Joined: Thu Jun 21, 2007 7:17 am

Post » Thu Jun 21, 2012 11:34 am

So OK

1. Because there is a Property called BarScene, that is pointing to an actual scene ... then the Scene should start.
  • Just to check. In your Quest (from what I can tell, Quest TWO) do you have the Scene built? To be clear ... The Scene needs to be in the same Quest as the Stage-10 (where we added the temporary messagebox line).
  • Have you recorded some Dialogue (just sample dialogue recording, using the CK is fine - at this stage) for each of the lines?
  • Have you then Saved that dialogue (just in the CK)?
  • In game, have you checked Always show subtitles in the Game-Settings?
(If you aren't sure about any of those, say which and I'll point you at the correct bit of the wiki)

2. If you have all of the above, then your Scene should have started ... So I think one of those bits is not correct ... But check/ask and we'll figure it out ;)
User avatar
Nitol Ahmed
 
Posts: 3321
Joined: Thu May 03, 2007 7:35 am

Post » Thu Jun 21, 2012 4:00 pm

How should I know I have to tell you anything in detail?

This...

LBGQuest10().SetStage(10) 

can't work, because it's supposed to look like this...

LBGQuest10.SetStage(10) 

Also, try using GetStageDone instead of GetStage.

I don't mean to be frustrating for you, honest.

The script still isn't setting to stage 20 where he gives the note.

My wife just hollered at me about being up at 4:30am doing this....I'll get back at it when the coast is clear tomorrow :)
User avatar
James Smart
 
Posts: 3362
Joined: Sun Nov 04, 2007 7:49 pm

Post » Thu Jun 21, 2012 12:45 pm

So OK

1. Because there is a Property called BarScene, that is pointing to an actual scene ... then the Scene should start.
  • Just to check. In your Quest (from what I can tell, Quest TWO) do you have the Scene built? To be clear ... The Scene needs to be in the same Quest as the Stage-10 (where we added the temporary messagebox line).
  • Have you recorded some Dialogue (just sample dialogue recording, using the CK is fine - at this stage) for each of the lines?
  • Have you then Saved that dialogue (just in the CK)?
  • In game, have you checked Always show subtitles in the Game-Settings?
(If you aren't sure about any of those, say which and I'll point you at the correct bit of the wiki)

2. If you have all of the above, then your Scene should have started ... So I think one of those bits is not correct ... But check/ask and we'll figure it out :wink:


There's only one line and all I recorded was testing 123 about three times and saved.

Yes I have subtitles turned on. It really help when doing this stuff for me.

I just went back through the tut and applied it verbatim and still it doesn't work. Even when I go to the stool without starting quest 1. So it's pretty messed up at this point.

Thanks for all your help guys, but self preservation tells me I better head off to bed.

Cheers!
User avatar
Myles
 
Posts: 3341
Joined: Sun Oct 21, 2007 12:52 pm

Post » Thu Jun 21, 2012 2:52 am

No worries.

Get some sleep, then look at it fresh ... Post up if/when you need more help

(if you only recorded one quick line ... then maybe the scene is playing? And I record silence and use subtitles for my stuff, at the moment ... then you can move forward without voices, so that's fine :))
User avatar
Hilm Music
 
Posts: 3357
Joined: Wed Jun 06, 2007 9:36 pm

Post » Thu Jun 21, 2012 12:08 pm

OK

I just spent a few hours on this and it seems to be *almost* ok.

I put a condition in the Story Manager where it checks whether the 1st quest stage was at 20 and fail if not.

I removed the lines I had that turned off player controls.

Now everything works except the NPC still only lips the dialog and he doesn't give the note unless the player activates him.

I've been through the tut I don't know how many times but I just don't see what I'm missing to force the NPC to give the note to the player.

I have the following on stage 20 as per the video:

game.getPlayer().AddItem(alias_Note.getRef())SetObjectiveDisplayed(20)

So, it seems as though the note would be passed with the first line. But it is only passed if I click on the NPC.

Thanks for all your help guys..I appreciate it and will include y'all in the credits :)
User avatar
Taylah Haines
 
Posts: 3439
Joined: Tue Feb 13, 2007 3:10 am

Post » Thu Jun 21, 2012 3:23 pm

Instead of what you wrote ... try:

ObjectReference myNoteObjRefis = alias_Note.GetReference() as ObjectReferenceGame.GetPlayer().AddItem(myNoteObjRefis,1,false)SetObjectiveDisplayed(20)

Alias_Note should be a ReferenceAlias Property - It should have a value of the Alias in your quest that points to the actual Note you made in the CK

That should work.

At what point it gets passed, depends on which Block you placed the script (I assume it went in your dialogue)? It can be at the start of a passage of dialogue, or at the end. When you look at the tree thing in Dialogue View you can see which "info" has the script because of the [S] at the front ... then just check to see which block you put the code in.

So if the NPC is playing a little scene, after sitting on the stool, on his last bit of speech you would put the script ... and as that started or ended the Note would appear in the PC's inventory ... with a notification to the player that it had happened (that's the false bit, in the brackets)
User avatar
Keeley Stevens
 
Posts: 3398
Joined: Wed Sep 06, 2006 6:04 pm

Post » Thu Jun 21, 2012 8:46 am

There must be something else somewhere.

I still have to talk to the note giver to get him to hand it over.

I'm way beyond stumped on this :/

I guess I'll try to put your fragment on other places and see if something clicks.
User avatar
Wanda Maximoff
 
Posts: 3493
Joined: Mon Jun 12, 2006 7:05 am

Post » Thu Jun 21, 2012 5:24 pm

Weird thing is that when I use the console "getstage LBGQuest10" after the note giver stop moving his lips it still says 10.0000

So the quest is not advancing

Where ever I try to put either your fragment or the one the tut instructs I get this:

Starting 1 compile threads for 1 files...Compiling "TIF__0201D3C8"...d:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__0201D3C8.psc(9,25): variable alias_Note is undefinedd:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__0201D3C8.psc(9,36): none is not a known user-defined typed:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__0201D3C8.psc(18,0): SetObjectiveCompleted is not a function or does not existd:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\TIF__0201D3C8.psc(19,0): SetObjectiveDisplayed is not a function or does not existNo output generated for TIF__0201D3C8, compilation failed.Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on TIF__0201D3C8
User avatar
Roanne Bardsley
 
Posts: 3414
Joined: Wed Nov 08, 2006 9:57 am

Post » Thu Jun 21, 2012 4:35 am

Amethyst!

I told you that quest making was the hardest thing to do in Skyrim :P
User avatar
Jesus Sanchez
 
Posts: 3455
Joined: Sun Oct 21, 2007 11:15 am

Post » Thu Jun 21, 2012 4:13 pm

Compiling "TIF__0201D3C8"...

That looks like a topic info script. In that case you need to prefix calls to SetObjectiveCompleted (or Displayed) with GetOwningQuest()., and add a ReferenceAlias type property to the script to get at the Note. (You don't need these things, but use the "Alias_" convention, in papyrus fragments attached to quest stages.)
User avatar
Rob Davidson
 
Posts: 3422
Joined: Thu Aug 02, 2007 2:52 am

Post » Thu Jun 21, 2012 9:46 am

I neglected to say that the code is place under the Quest Stages tab (stage 20)

You script DOES compile there. It just doesn't add the note unless I click on the NPC in-game.

It's when I try to place it elsewhere that it doesn't compile.

I just tried placing your fragment on stage 10 and as soon as I sit on the stool the note is place in my inventory and the quest is advanced. So I know your scripts works, it's just not placed in the right place or there is something else keeping it from triggering.

I think I'll try to place the fragment under the End Fragment of the Scene text (Where you input the text and then go to the recording dialog box from there).

I just need to know how to get around the alias_Note problem.

You say to add a ReferenceAlias type property to the script but you can't add properties to this box. It seems like it would have to be a declared variable....I think
User avatar
Roberto Gaeta
 
Posts: 3451
Joined: Tue Nov 06, 2007 2:23 am

Post » Thu Jun 21, 2012 8:05 am

Here's the screen where I am trying to put the fragment:

http://lamplight.pcgamingnetwork.com/tmp/CK_Text_Input_Screen.jpg
User avatar
Lyndsey Bird
 
Posts: 3539
Joined: Sun Oct 22, 2006 2:57 am

PreviousNext

Return to V - Skyrim