Help Please on a quest

Post » Sun Nov 18, 2012 7:55 pm

Hello
I am Stuck in 1 quest, If you can help me please i would apreciate.
Quest 1:
I allready setup a trigger, OnTriggerEnter, to start Quest 1.

Objectives:
Objective 10: talk to Target Alias1
Objective 20 : talk to another Target Alias2
Objective 30: talk to another Target Alias3
Objective 40: talk to another Target Alias4

Stage 10:
SetObjectiveDisplayed(10)
SetObjectiveDisplayed(20)
SetObjectiveDisplayed(30)
SetObjectiveDisplayed(40)

Now everything is working properly, after I enter the trigger, Quest 1 starts and get stage 10. and displays for me on the screen and the journal all 4 objectives.
I have allready made a dialogue for each of all 4 npcs, and called "Quest 1" after dialogue ends
Quest1Property.SetObjectiveCompleted(10) in the quest dialogueviews for Alias1
Quest1Property.SetObjectiveCompleted(20) in the quest dialogue for Alias2
Quest1Property.SetObjectiveCompleted(30) in the quest dialogue for Alias3
Quest1Property.SetObjectiveCompleted(40) in the quest dialogue for Alias4

so far everything working good, all 4 objectives are completed in Quest1 after i talk to them.
now since i did not set stages by order so player can talk to any npc in any order, how do i get quest 1 completed after that ?
User avatar
glot
 
Posts: 3297
Joined: Mon Jul 17, 2006 1:41 pm

Post » Mon Nov 19, 2012 12:08 am

I have the exact scripts you need mate, and you need to make a stage for every objective. I'll show you why but won't be home for about 11 or so hours. If you can wait til then I'll sort you out :)

Unless someone else can help in the mean time :) basically you need to set a stage when an objective is complete. Then in the stage script you check if all the stages have been completed for objectives and if not nothing happens. If so, as in your final objective is finished, it'll set the final stage.

Really easy to do mate.
User avatar
Jack Bryan
 
Posts: 3449
Joined: Wed May 16, 2007 2:31 am

Post » Sun Nov 18, 2012 2:26 pm

sounds good. pm me how to fix it please.
by the way, why objective map marker does not show on certain npc, like Alvor, Balgruuf, Andurs and others, i tried both alias ref, unique actor and specific ref, and both did not work.
User avatar
Samantha Wood
 
Posts: 3286
Joined: Sun Oct 15, 2006 5:03 am

Post » Sun Nov 18, 2012 11:55 pm

sounds good. pm me how to fix it please.
by the way, why objective map marker does not show on certain npc, like Alvor, Balgruuf, Andurs and others, i tried both alias ref, unique actor and specific ref, and both did not work.
User avatar
Tyrone Haywood
 
Posts: 3472
Joined: Sun Apr 29, 2007 7:10 am

Post » Sun Nov 18, 2012 10:21 pm

Ok so here it goes.

Create a Stage 11, 12, 13, and 14. These will be your "checking" stages. Create an EMPTY log entry in each of these. Your quest begins by setting the stage to 10.

Change your Objectives to 11, 12, 13, 14.

In your script box for Stage 10, have:

SetObjectiveDisplayed(11)
SetObjectiveDisplayed(12)
SetObjectiveDisplayed(13)
SetObjectiveDisplayed(14)


Now when you talk to your NPC, the objective is completed. So in the End Fragment box in the final dialogue response, have:


GetOwningQuest.SetObjectiveCompleted(11)
GetOwningQuest.SetStage(11)

For each npc, change 11 to 12, or 13, or 14. So each NPC will set a different objective and stage.

Now in the script fragment boxes for your stages you want:

Spoiler

In Stage 11; set when player talks to NPC 1if getStageDone(12) == TRUE && getStageDone(13) == TRUE && getStageDone(14) == TRUEsetStage(20); this is the stage that gets set when all NPC's have been spoken toendifIn Stage 12; set when player talks to NPC 2if getStageDone(11) == TRUE && getStageDone(13) == TRUE && getStageDone(14) == TRUEsetStage(20); this is the stage that gets set when all NPC's have been spoken toendifIn Stage 13; set when player talks to NPC 3if getStageDone(11) == TRUE && getStageDone(12) == TRUE && getStageDone(14) == TRUEsetStage(20); this is the stage that gets set when all NPC's have been spoken toendifIn Stage 14; set when player talks to NPC 4if getStageDone(11) == TRUE && getStageDone(12) == TRUE && getStageDone(13) == TRUEsetStage(20); this is the stage that gets set when all NPC's have been spoken toendif


This basically runs like this. Each time the objective is completed, it sets the stage. That stage then checks if the other stages (11, 12, 13, 14) are all complete to. If they are, it will set it to Stage 20. If they aren't yet, as in you've only spoken to 1, or 2 npcs, nothing will happen, except the objectives they are for will be complete in the journal.

If you want the quest to be completed then, create a Stage 20. In there, you can add your log entry like "All NPC's are spoken to!" and tick the complete box.

You could go as far as have a standalone objective also. Objective 10, as Talk to the NPC's. Create that Objective as 10. Then in Stage 20, have SetObjectiveCompleted(10).

That's it. Good luck :smile:
User avatar
Cat
 
Posts: 3451
Joined: Mon Dec 18, 2006 5:10 am

Post » Sun Nov 18, 2012 3:49 pm

thx a lot Mate, I will try it and let you know !
User avatar
x a million...
 
Posts: 3464
Joined: Tue Jun 13, 2006 2:59 pm


Return to V - Skyrim