"cannot start scene because its parent quest..." re

Post » Sun Sep 06, 2015 5:24 pm

We discussed this one in http://www.gamesas.com/topic/1360514-cannot-start-scene-because-its-parent-quest-was-not-running/. Rather than necro the thread, I thought I'd start a new one.

Basically, I have the same problem again. I know I can get around it by making it start when the quest starts, but having just dragged myself beaten and bloody from the wreckage of a 50 phase scene, I think I'd prefer to have lots of small scenes stitched together for the next one. Having a quest for each of them seems wasteful.

The really odd thing is that this is happening in stage 30 - two stages have happened by this point, including the explicit startup stage. I'd have thought that everything would have been initialised by that point. Oh, well, go figure.

I suppose I could auto start the quest in an OnUpdate loop. I can probably auto start the first scene as well and then hand script the others to start. has anyone else found any useful strategies for dealing with this since 2012?

The other reason I wanted to post this: are people aware that the people over on www.gamesas.com are copying our threads verbatim and republishing them with the names and avatars changed? I mean compare http://www.gamesas.com/cannot-start-scene-because-its-parent-quest-was-not-run-t258379.html with the one I linked at the start of this post.

Is it just me, or is that a bit bloody cheeky?

[edit]

Apparently I am secretly both "Louise Lowe" and "Matt Bee" :/
User avatar
Zoe Ratcliffe
 
Posts: 3370
Joined: Mon Feb 19, 2007 12:45 am

Post » Sun Sep 06, 2015 4:54 pm

why don't you just put all the scenes on the same quest and start each of them from the previous scene's end fragment?

User avatar
Farrah Barry
 
Posts: 3523
Joined: Mon Dec 04, 2006 4:00 pm

Post » Sun Sep 06, 2015 10:31 am

Does your startup stage use SetStage to set the following two stages? SetStage will not return until the stage you set has finish running its fragments, and it's likely the quest is not considered started until the startup stage is finished.
User avatar
D LOpez
 
Posts: 3434
Joined: Sat Aug 25, 2007 12:30 pm

Post » Sun Sep 06, 2015 11:47 am


I have a few different ways into the quest for debug purposes and there's initialisation that needs to be done in some cases. I could probably do it, but it's messy.


So all those quests I made where I start with stage 0, setstage(10) in the expectation that stage 10 would be fully initialialised - that was all a waste of time? Oh boy...

I take it a RegisterForSingleUpdate would do the job? Give the quest a chance to finish the fragments and finish setting up before coming back and advancing the quest?
User avatar
Judy Lynch
 
Posts: 3504
Joined: Fri Oct 20, 2006 8:31 am

Post » Sun Sep 06, 2015 8:59 am


I'm going off of memory of what the script system does and what SetStage does. Quests and scenes are not my area - I don't know exactly what part of the quest the scene is looking at to determine if it can start.

A RegisterForSingleUpdate would potentially let the start stage fragment finish running, if it was at the end of the fragment, so it's certainly worth a try.

It does tend to make sense if you think about it - the quest startup stage is kind of a chance for a script to make sure everything in the quest is ready to go before it is considered "started" :smile:
User avatar
Alexxxxxx
 
Posts: 3417
Joined: Mon Jul 31, 2006 10:55 am

Post » Sun Sep 06, 2015 7:44 am

i think you should get around that by not start()ing it before setting the stage.

if you just SetStage, that should start the quest right at that stage like that was the starting stage (at least that's what i get from the wiki),

except if you have that "always start with this stage" checkbox checked for another one.

(just for the records and not trying to speak against registering for an update)

User avatar
Erin S
 
Posts: 3416
Joined: Sat Jul 29, 2006 2:06 pm

Post » Sun Sep 06, 2015 7:03 am

I just tried to post and was told I'd been blocked. Testing from another browser.

[edit]

In which case, I was going to say this:

That works for me. I currently have a second script attached to the same quest that looks like this:
Scriptname qayl_scene_starter_sc extends Quest Scene Property sc Auto function go(scene s)        sc = s         registerforsingleupdate(0.1)endfunction event onUpdate()        if sc.isPlaying()                return        endif        sc.start()        registerforsingleupdate(0.1)endevent
And I call that from the other script, which works just fine. But I like the idea of a single update in the startup stage. I piut it in its own script because the main one has a lot of update loops and states to manage them and I didn't want to complicate things further.
I have a weird setup on this one:
Entry points are at stages 20, 21 and 22 depending on whether we're "live" or running a test case. The startup stage is stage 10 and all the twenty-somethings advance to stage 30. So it tends to e 10-20-30 in practice. I think. It's a while since I traced the sequence out. The scene was being called in stage 30
Right, good. Thanks guys, that is a lot clearer in my mind now.
User avatar
Rachel Briere
 
Posts: 3438
Joined: Thu Dec 28, 2006 9:09 am


Return to V - Skyrim