Start quests from a list at random

Post » Sun Nov 18, 2012 10:47 pm

Hey guys. You know how you can have a list of responses in dialogue set to random, and the game will randomise them until the end, and repeat them all randomly again... can this be done with quests? (that are repeatable).

Basically can this be done.

Talk to NPC. He can start 1 of 10 quests at random. Only 1 quest can run at a time, so the player can't have all 10 on the go at once. When that quest is finished, he can start another of the 10 randomly. Repeat etc.

When all 10 are completed, they can be done again all randomly so not in the same order as before. And again only 1 at a time.

Is this even possible? I was thinking perhaps have a start quest script attached to 10 dialogue responses which are set to random. This would work I think but wouldn't stop the player then talking to the npc and starting another quest, then another...
User avatar
Bethany Watkin
 
Posts: 3445
Joined: Sun Jul 23, 2006 4:13 pm

Post » Sun Nov 18, 2012 9:50 am

Ok so maybe have 10 conditions on the start of the branch that the stage for each of the 10 quests is < 10. Then have 10 topics, one for each quest, enabled when in the quest to finish it.

But that seems too much overhead :shrug:
User avatar
Trent Theriot
 
Posts: 3395
Joined: Sat Oct 13, 2007 3:37 am

Post » Sun Nov 18, 2012 11:32 am

Right to do it my way the best way is to have a 3rd quest there in the mix, but a hidden from the player quest. SetStage 10 for this quest at the same time as the other quest for the job, and have a single condition on the main branch, that quest 3 GetStage < 10. Upon completion of each of the 10 quests, set quest 3 as complete to. Done.

Seems really messy though. Maybe someone more talented among you folks has a more efficient way ;)
User avatar
Quick draw II
 
Posts: 3301
Joined: Thu Nov 08, 2007 4:11 pm

Post » Sun Nov 18, 2012 3:49 pm

This is exactly what the "http://www.creationkit.com/Script_Event" system in http://www.creationkit.com/SendStoryEvent_-_Keyword is for. Create a keyword, "BBDRandomQuests" or something like that. In your dialogue, call "BBDRandomQuests.http://www.creationkit.com/SendStoryEvent_-_Keyword". Then in the Script Events section of Story Manager, create a new Random Quest Node, condition the node to trigger based on your keyword and check that you want all the quests to run before repeating any, and then add your ten quests to the node.

You'll need something to make sure that only one quest is running at a time, but you can add that check in a variety of different places.
User avatar
Tanya
 
Posts: 3358
Joined: Fri Feb 16, 2007 6:01 am

Post » Mon Nov 19, 2012 12:19 am

This is exactly what the "http://www.creationkit.com/Script_Event" system in http://www.creationkit.com/SendStoryEvent_-_Keyword is for. Create a keyword, "BBDRandomQuests" or something like that. In your dialogue, call "BBDRandomQuests.http://www.creationkit.com/SendStoryEvent_-_Keyword". Then in the Script Events section of Story Manager, create a new Random Quest Node, check that you want them all to run before repeating any, and then add your ten quests to the node.

You'll need something to make sure that only one quest is running at a time, but you can add that check in a variety of different places.

Brilliant something else in the CK to learn! Lol :P thanks mate.

I think my eureka moment of running a 3rd quest would do the trick to stop more than one running at a time.

Thanks mate :)
User avatar
Chenae Butler
 
Posts: 3485
Joined: Sat Feb 17, 2007 3:54 pm

Post » Sun Nov 18, 2012 4:57 pm

I think i saw a way to make random variables and maybe you can do that. What i have learned from Papyrus so far is that you can set variables to to certain functions and if you use that with "if" it might just work.
User avatar
Jack
 
Posts: 3483
Joined: Sat Oct 20, 2007 8:08 am

Post » Sun Nov 18, 2012 6:03 pm

I think i saw a way to make random variables and maybe you can do that. What i have learned from Papyrus so far is that you can set variables to to certain functions and if you use that with "if" it might just work.

Gives me an idea :) that's the same as my idea to have a quest run. Basically a check. A variable would be cleaner than a quest, I can set it to 0 after every quest, and set it to 1 at the start of each. Then the condition is variable == 0.

That's to make it so only 1 quest runs at a time.
User avatar
meg knight
 
Posts: 3463
Joined: Wed Nov 29, 2006 4:20 am

Post » Sun Nov 18, 2012 4:23 pm

I think my eureka moment of running a 3rd quest would do the trick to stop more than one running at a time.

Yep, or you could also just use a global variable. Set it to 1 whenever one of your 10 quests starts, and 0 when it finishes; and then in the dialogue conditions, only show the topic that offers a new quest if the variable is 0.
User avatar
Tanya Parra
 
Posts: 3435
Joined: Fri Jul 28, 2006 5:15 am

Post » Sun Nov 18, 2012 10:16 pm



Yep, or you could also just use a global variable. Set it to 1 whenever one of your 10 quests starts, and 0 when it finishes; and then in the dialogue conditions, only show the topic that offers a new quest if the variable is 0.

Sorry man I :ninja: you ;)
User avatar
Michael Korkia
 
Posts: 3498
Joined: Mon Jul 23, 2007 7:58 pm

Post » Sun Nov 18, 2012 3:58 pm

Ok so I decided to use dialogue to my advantage, rather than learning Story Manager. Better the devil you know I guess.

Here is a little video showing my work in action. There are only 2 contract quests made right now, but you can see the system working perfectly :smile: The dialogue responses were set to random, with the last one set as random end. Each had a condition GetQuestRunning == 0 for my quest HISLJ1Active that runs when each job does. And the "You can only have one contract at a time" Had the same condition, but set to == 1. At the end of each quest, I Stop() the HISLJ1Active quest.

http://www.youtube.com/watch?v=2PPtyj2r884

1080p :wink:
User avatar
BrEezy Baby
 
Posts: 3478
Joined: Sun Mar 11, 2007 4:22 am

Post » Sun Nov 18, 2012 5:23 pm

Ok so I decided to use dialogue to my advantage, rather than learning Story Manager. If it ain't broke, don't fix it I guess.

Here is a little video showing my work in action. There are only 2 contract quests made right now, but you can see the system working perfectly :smile: The quest responses were set to random, with the last one set as random end. Each had a condition GetQuestRunning == 0 for my quest HISLJ1Active that runs when each job does. And the "You can only have one contract at a time" Had the same condition, but set to == 1. At the end of each quest, I Stop() the HISLJ1Active quest.

http://www.youtube.com/watch?v=2PPtyj2r884

1080p :wink:

:P
He explained the SM qute well. Only thing was missing is, that the quest must not be set to start enabled, but rather start on event thingy. ;) Everthign else was fine. :)
I would advise you to do it. The SM is quite a nice, new addition. :)
User avatar
Marine x
 
Posts: 3327
Joined: Thu Mar 29, 2007 4:54 am

Post » Sun Nov 18, 2012 3:16 pm

:tongue:
He explained the SM qute well. Only thing was missing is, that the quest must not be set to start enabled, but rather start on event thingy. :wink: Everthign else was fine. :smile:
I would advise you to do it. The SM is quite a nice, new addition. :smile:

I would, but I'm comfortable doing it this way. I will keep looking into it though, incase there are downsides/upsides to each method :)

This way works well enough though, so I don't see the benefit of SM for this :P
User avatar
Krista Belle Davis
 
Posts: 3405
Joined: Tue Aug 22, 2006 3:00 am

Post » Sun Nov 18, 2012 1:38 pm

Thanks for this thread, I was seriously considering whipping up a "Town Guard" mod (I have always found it odd that you never get a chance to join the town guard...) and the faction would mostly consist of randomly occurring mini quests in/around towns.
User avatar
Joe Bonney
 
Posts: 3466
Joined: Tue Jul 17, 2007 12:00 pm


Return to V - Skyrim