Complex dialogues

Post » Mon Jun 18, 2012 8:40 pm

I looked at the quest/dialogue tutorial on Creation Kit wiki and started making a dialogue for my mod. It's a little bit more complex though -- an example dialogue in this tutorial was really simple -- and I'm having some troubles.

I want to have a list of topics shown to PC and then add some options to it only when they're mentioned in some other bit of dialogue (i.e. info). I can't really make it work though. I can set a branch as top-level which will make it available from the beggining, or as normal which will treat it basically as a response -- exactly like topics inside a branch -- so it will be the only choice and after that the player returns to original topics. And I want it in the general topic list but not by default.

I think it may not be clear what I mean so i'll give an example (based on the actual dialogue I'm working on).

I have topics A, B and C available to PC.


When the player clicks on topic A, he gets some response and goes back to the topic list with the same options A, B and C.

If the player clicks on B, he gets some info, then has to choose one of 2 responses (topics), gets another info and goes back to the general list. But now there's also an option D, because there was something mentioned in that conversation.

Or he can click C instead which will give him a simple info but also unlocks topic D.



I think it would be very simple to do if we could use variables. So I could make a script that says "set optionD to 1" and use it with infos in B and C branches. Then I could require a condition "optionD is 1" in order to show topic D. But as far as I know we can't use variables in dialogues (can we?). So the closest thing are quest stages but I don't think it's a good idea to overuse them. Also they are still limiting.

And I could add a LOT of links but that also doesn't seem like a good way to do this.

So... Any suggestions? Ways to go around limitations?


PS. There are possible conversations that are even more complex. For instance there could be an option E which would become available once the PC used topics C and D. So it can't be just set that it shows up after option D, because the player could say B, then D, and in this case he still needs to click on C.

You know what I mean? How do I do stuff like this?


PS2. When I set a branch as top-level (which is a default type) does it change anything if I link to it or not?
User avatar
Cash n Class
 
Posts: 3430
Joined: Wed Jun 28, 2006 10:01 am

Post » Mon Jun 18, 2012 12:44 pm

Bethesda themselves do this a few times for exising NPCs. Off the top of my head Cicero has a ton of dialogue options that only get added once you've already explored the 2 default options. Maybe try looking through Cicero's dialogue to see how they did it?
User avatar
Sunnii Bebiieh
 
Posts: 3454
Joined: Wed Apr 11, 2007 7:57 pm

Post » Mon Jun 18, 2012 7:44 pm

You can use variables in dialogue to do this sort of thing--you just need a script somewhere that sets those variables up and manages their state. So the basic setup would be that you have a quest script called QuestScript attached to this quest, and in it you define

Bool Property bCanAskAboutD = false Auto Conditional

Then in the infos that should trigger Topic D to become available, you have an "end" snippet of Papyrus like

(GetOwningQuest() as QuestScript).bCanAskAboutD = true

And in the starting topic for Topic D, you setup a condition with the GetVMQuestVariable condition, choosing your quest's name and the bCanAskAboutD variable.

Edit: spelling.
User avatar
Rhiannon Jones
 
Posts: 3423
Joined: Thu Sep 21, 2006 3:18 pm

Post » Mon Jun 18, 2012 7:34 pm

Thank you both. I posted the same thing on Nexus modding forum and there was no answer; I'm glad it's different here. Now I'm going to test this.
User avatar
phil walsh
 
Posts: 3317
Joined: Wed May 16, 2007 8:46 pm


Return to V - Skyrim