Conditions for starting a quest

Post » Mon Jun 18, 2012 7:58 pm

Hi, I want to create a quest that starts when specific conditions are met. The ones I want are that the player is in a specific faction and he is in a specific location. However, I have not found a way to do so.
My quest is set as "Start game enbaled". I can have conditions for my dialogues but it doesn't seem to work if I put a condition into the 0 stage of a quest, for example I added the condition function GetIssix Male == 1 and run on Player. Now the dialogue starts. When I change the line to Female == 1, the dialogue also starts. The condition doesn't work. What is wrong here?

Also, how do I check if the player is in a specific location, e.g. in front of the entrance to Whiterun?
User avatar
Kayla Oatney
 
Posts: 3472
Joined: Sat Jan 20, 2007 9:02 pm

Post » Mon Jun 18, 2012 4:18 pm

This isn't the cleanest method, but you can uncheck the Start Game Enabled, and use a trigger box to check if the player is in front of whiterun - chances are there are already vanilla trigger boxes so you can append your script to it (or jsut make a new trigger box).

A much more cleaner method and less likely to bring conflict errors IMO is to do it fully by script. You can leave the Start Game enabled and the quest won't pop up in the player's journal instantly. You can use the first stage (0) as a starting stage - nothing happens. Just have the quest script that checks every once in a while if the player is in the faction and if the player is in the worldspace, then you can SetObjectiveDisplayed(X) where x is the number for first objective, and this will prompt the quest to start and quest marker to point.
User avatar
loste juliana
 
Posts: 3417
Joined: Sun Mar 18, 2007 7:37 pm

Post » Tue Jun 19, 2012 3:48 am

Got that working now. Now I have a problem with forcing the player into a conversation. I used the force greet package. If I apply it to the actor, it works. However, if I add that package to a quest alias that references this actor, it doesn't work. I added a script to that alias to see if it gets started and it did. However, I have no idea why the package doesn't work when I add it to the actor which seems to be the better practice since I don't want to have it permanently on my actor.
The actor is referenced as a unique actor in the alias. The object is initially disabled and I enable it using a script. That stuff works, I tested it by adding the package directly to the actor, which worked, but not directly using the alias.
So, why doesn't it work when I add it using the alias? Also, how do I make it that I really enter a conversation with the actor? Right now he stands next to me and talks, however I can still move around and get out of sight of him, I want it centered like when I would normally initiate conversation with him, so it doesn't overlap (the subtitles) when out of the sudden another character in the background starts talking.
User avatar
Tammie Flint
 
Posts: 3336
Joined: Mon Aug 14, 2006 12:12 am

Post » Mon Jun 18, 2012 12:29 pm

I'm not positive, but I think you need to make the alias forcegreet the player through a package in the scene editor.
User avatar
sam smith
 
Posts: 3386
Joined: Sun Aug 05, 2007 3:55 am

Post » Mon Jun 18, 2012 7:44 pm

I'm not positive, but I think you need to make the alias forcegreet the player through a package in the scene editor.
I'd agree, a small scene is the best way to handle this. Scenes are just great :)
User avatar
Beulah Bell
 
Posts: 3372
Joined: Thu Nov 23, 2006 7:08 pm

Post » Mon Jun 18, 2012 7:24 pm

You might also check the respective priorities of the packages in the NPC's stack. For a ForceGreet during a quest stage, you probably want to give it very high priority to override any navelgazing or wandering the NPC would otherwise be doing.
User avatar
Jah Allen
 
Posts: 3444
Joined: Wed Jan 24, 2007 2:09 am


Return to V - Skyrim