'IsStageDone' question.

Post » Sat Nov 17, 2012 10:49 am

I need some elaboration on http://www.creationkit.com/IsStageDone_-_Quest. Does it only return true if that specific stage was set at some point in the quest?

For example; I have a quest with 3 stages. 5, 6 and 10. There are two ways to start this quest, A and B. If the player does A, the stage is set to 5, but if they do B, it is set to 6. Then, no matter what later on the quest is set to 10. At that point, can I use IsStageDone to determine whether the player start the quest with option A or B? If the player does B, so the stage is set to 6, and later 10, would 'IsStageDone 5' return false, because while the stage of the quest is current above 5, that stage was never specifically set?

I assume this is the entire point of this command and it being seperate of 'GetStage', but I have to be certain. I'm frameworking this entire quest around that command so if it works another way I need to know. :)

Thanks!
AJV
User avatar
Oscar Vazquez
 
Posts: 3418
Joined: Sun Sep 30, 2007 12:08 pm

Post » Sat Nov 17, 2012 4:11 am

Yes, that is how the command works.
User avatar
Elisabete Gaspar
 
Posts: 3558
Joined: Thu Aug 31, 2006 1:15 pm

Post » Fri Nov 16, 2012 8:05 pm

Yes, that is how the command works.

cool, thank you both. This will come in handy as dialog conditions!
User avatar
louise hamilton
 
Posts: 3412
Joined: Wed Jun 07, 2006 9:16 am

Post » Sat Nov 17, 2012 6:32 am

Yes, that is how the command works.
Awesome. Thanks. :)
User avatar
x a million...
 
Posts: 3464
Joined: Tue Jun 13, 2006 2:59 pm

Post » Sat Nov 17, 2012 8:49 am

Just so I understand guys, the IsStageDone Function would be called in the papyrus fragment for a quest stage right?

Edit: I'm a bit confused about this could you shed some light?

I thought on a quest stage (yours being 10) you have to setobjectivecomplete don't you. But if both stages 5 and 6 lead to 10, wouldn't you have to set both 5 and 6 to complete?
User avatar
Czar Kahchi
 
Posts: 3306
Joined: Mon Jul 30, 2007 11:56 am

Post » Sat Nov 17, 2012 8:24 am

They mean, in a complex quest - which often has multiple paths, to complete the quest - that if you SKIP a Stage (because it is not on the chosen path) it will not return DONE.

So ...
  • Stage 10 - Player completes successfully, and SCRIPT sets as Completed (and goto S15)
  • Stage 15 - Player does not take this option (maybe it was a mini-quest, but the player decided against taking the dialogue) ... Set as complete in script (SCRIPT sends player straight to Stage 20)
  • Stage 16 - Is never run, because of the none-choice above - And so is NOT marked as complete (and will "fail" the IsDone check)
  • Stage 20 - Player completes successfully, and SCRIPT sets as Completed

You COULD mark S16 as complete ... when S20 is activated ... but would you want to? ... Testing that S20 was complete, but S16 was not may tell you something about how your player played the game ;)
User avatar
Scared humanity
 
Posts: 3470
Joined: Tue Oct 16, 2007 3:41 am

Post » Sat Nov 17, 2012 8:33 am

This has nothing to do with when what objective is displayed. This is simply saying, if I skip stage 5 and go to 6 instead, would IsStageDone for 5 be true or false. Since the quest is above stage 5, but it was never set to stage 5. (It skipped it)

As I thought, it would be false. Since GetStage would be used to tell if the stage was above 5, but IsStageDone would be used to tell if the quest was ever set to stage 5.

That way I can have the quest start in multiple ways, then at the end I can use IsStageDone to determine which way the player started it, and I can alter the ending or clean up accordingly.
User avatar
Mackenzie
 
Posts: 3404
Joined: Tue Jan 23, 2007 9:18 pm

Post » Sat Nov 17, 2012 1:19 am

Thanks guys I think I get it now :) just got confused because of the 2 stages leading to the same stage.
User avatar
sarah
 
Posts: 3430
Joined: Wed Jul 05, 2006 1:53 pm

Post » Sat Nov 17, 2012 8:16 am

I was thinking more in terms of dialog conditions, but I’m sure it can be used a ton of ways. But using AV’s example above, let’s say his “A” scenario was that the player turned left, I could set my dialog that if stage 5 was done then my NPC would say, “Oh, I see you turned left back there, that’s pretty cool….” And saying that the “B” scenario was turning right, he would comment the opposite when set to IsStageDone == 6, etc. This would work, no?
User avatar
Erika Ellsworth
 
Posts: 3333
Joined: Sat Jan 06, 2007 5:52 am

Post » Fri Nov 16, 2012 10:20 pm

Yeah, according to PrinceShroob, if the functions acts like I think it does, then that's exactly what you would use it for.

Determining how the player started the quest is my intention. Did they enter the dungeon and see a ghost? Quest starts. Did they talk to the nearby townfolk and learn about the ghost? Quest started.

Then if they go into the dungeon, when they come out, they shouldn't have an objective like 'tell the nearby townsfolk what you learned' if they never talked to them in the first place. That's basically my intention. Multiple endings accounting for the different ways to start it.

More complex than simply locking the dungeon until the player starts the quest at the town, but a far better result. :biggrin:
User avatar
Josh Trembly
 
Posts: 3381
Joined: Fri Nov 02, 2007 9:25 am


Return to V - Skyrim