Making Dialogue usetrain the Speech skill?

Post » Tue Jan 19, 2016 8:25 pm

I'm working on a mod to hopefully cut the Admire/Intimidate/Taunt/Bribe persuasion system out of the loop in favor of more natural conversation options which not only modify disposition, but also make you feel like you're interacting with a person in the game world and not just clicking the same six buttons over and over again trying to eek out another 10 disposition points.



Inspired by the likes of the LGNPC project, and using some of the basic methodology of the various partners mods, I've got a mod which so far enables the player to have a somewhat detailed conversation with a friendly young dunmer woman outside the Seyda Neen Census and Excise office curious to meet a fellow Outlander. She's set up in such a way as to introduce the -talk- topic and essentially serve as the player's first "friend" in Vvardenfell, and in that regard my conversation system seems to be working excellently.




The problem that I'm running into, however, is that by changing character interactions to use actual dialogue choices I'm also removing any kind of reliance upon the actual 'speechcraft' skill.



That's not what I want to do. I want the skill to remain relevant, but in ways that skew more towards player immersion in the world rather than simply mechanical purity.




So, my first question is: Can I make dialogue options mimic the speechcraft experience gain earned by using the persuasion system, and if so how? Is there some kind of documentation on that somewhere that somebody could point me towards.



My second question is: What kind of impact can/should the speechcraft skill have on the outcome of various lines of conversation?




Any input at all is welcome...



User avatar
Kat Lehmann
 
Posts: 3409
Joined: Tue Jun 27, 2006 6:24 am

Post » Tue Jan 19, 2016 4:29 pm

You'll have to use MWSE scripts to reward skill experience. See the xModProgressSkill function in the included documentation.

User avatar
Prohibited
 
Posts: 3293
Joined: Tue Jun 12, 2007 6:13 am

Post » Tue Jan 19, 2016 5:18 pm

You plan is a very ambitious one, but I really like the concept. I think I prefer Skyrim's over-simplified approach to disposition. Although it reduced relationships in the game to a handful of conditions beginning usually with indifference and ranging from despise to complete trust, it was the player's actions (mostly through quests) that the disposition would be altered - well effectively through dialogue as you propose.



You can still make it so speechcraft still has a roll since dialogue entries can be filtered by the player's skill. You can also modify the player's speechcraft through dialogue results. It is possible to modify a skill by fractional amounts. So you could add something like player->ModSpeechcraft 0.05 to dialogue results for the appropriate response.



Except for skillbooks and temporary adjustments through the barter process the only way I notice that speechcraft is adjusted is through the successful use of the persuasion tab (admire, bribe, etc.). There are no guidelines for how 'normal' NPC interactions should affect this skill. You are going to have to experiment with the results.




To expand your concept to work with all NPCs you are going to have to adjust your approach otherwise it will be overwhelming. Even following a scheme as I propose it will still be a great undertaking and ultimately still may be too easy for the player to exploit.



I suggest creating new topics of conversation through which NPC disposition and player speechcraft will be modified. The topic should be one that is important enough to the NPC to justify it influencing their feelings toward the player. One way to control this would be to create different topics filtered for difference classes (or races, factions, etc. - whatever you feel would create strong feelings in the NPC). There will need to be different dialogue threads under each such topic that depend on the NPC's disposition toward the player (not unlike what is done under the persuasion tab except these will be more complicated each with multiple choices that ultimately determine how disposition and speechcraft are affected. The player may have to carry on a 'long conversation' within that topic before the results are achieved. There still exists the possibility that the player offer money (bribe) or flattery (admire) or threaten (intimidate) as well as the completion of a modest 'quest'. Of course, you will determine the impact each such 'action' will have on the NPC's disposition. Completing a quest may be greater than simple flattery.



It would be nice if the player could be prevented to drawing from this particular well repeatedly (at least in the same session), but that may prove difficult to control precisely. Perhaps a global variable flag that is set the first time the player speaks on the topic that is not reset until the player leaves dialogue. The flag is a filter that prevents the player from speaking (at least to any purpose) on the topic during that session. Since there are external factors that affect disposition you could filter it so the responses filtered by disposition are so spread out that the results that improve disposition will not change it enough for the player to reach the next tier. The modification of disposition can be made conditional - if it is already exceeds a certain value then no further improvement is allowed except if the player 'jumps' to the next level by some other means (charm, faction reputation, reputation(?)). The structure might look like this:



Topic: making ends meet


Filtered for Class: commoner



Filter [Global: DiscussedOnce == 1]: Blah, blah, blah...


Results: (none)



Filter [Disposition: 90]: Blah, blah, blah...


Result: Set DiscussedOnce to 1


Choice "(Player response 1)" 1 "(Player response 2)" 2 "(Player response 3)" 3



Filter [Disposition: 90; Function: Choice = 1]: Blah, blah, blah...


Result: ModDisposition 5


StartScript "ModifySpeechcraft"



Filter [Disposition: 90; Function: Choice = 2]: Blah, blah, blah...


Results: (none)



Filter [Disposition: 90; Function: Choice = 3]: Blah, blah, blah...


Result: ModDisposition -5



Filter [Disposition: 70]:


Filter [Disposition: 50]:


Filter [Disposition: 30]:


Filter [Disposition: 10]:



Of course I am showing just a basic structure. Most interactions will require more than a simple statement and response. The global script ModifySpeechcraft is a variation on my original suggestion that should be more efficient. You can scale the amount of 'experience' gained based on the player's current speechcraft (as Bethesda does with all skills). Also it is much easier to make adjustments to the script than to go through every dialogue entry to make any necessary change. You can also launch the script even if the player is 'unsuccessful' if you believe we learn from our mistakes, and/or have different versions of the script depending on failure or the degree of reliance on the speechcraft skill to succeed. The script might look something like this:



Begin ModifySpeechcraft_Success

short doOnce

if ( doOnce == 1)
set doOnce to 0 ; reset for next time script is started
StopScript "ModifySpeechcraft_Success"
return
endif

if ( (player->GetSpeechcraft ) >= 90 )
player->ModSpeechcraft 0.01
elseif ( (player->GetSpeechcraft ) >= 80 )
player->ModSpeechcraft 0.02
elseif ( (player->GetSpeechcraft ) >= 70 )
player->ModSpeechcraft 0.03
elseif

endif

set doOnce to 1

End

Oops. There is one serious downside to manipulating a skill via script, any improvement in the skill will not count toward leveling - if speechcraft is a major or minor skill increases in this way will not move the player closer to leveling. I am uncertain how this affects the attribute multiplies upon level up. This may not be an issue with leveling mods like Galsiah's Character Development.




Edit: Perhaps that is what Greatness alludes. It would be nice if the script extender will resolve the problem with awarding 'experience' for the purposes of leveling.



Edit: Meaning-altering typo.

User avatar
Niisha
 
Posts: 3393
Joined: Fri Sep 15, 2006 2:54 am

Post » Tue Jan 19, 2016 8:23 pm

Skyrim's simplicity was, honestly, surprisingly compelling. The dialogue itself didn't often leave me certain of where I stood with anybody, save for on the rare occasion that they greeted me with a boisterous chortle of laughter or a malicious snarl instead of their typical cynical disinterest, but it just FELT good to make a friend (or an enemy!). It was a good half-way point between Morrowind and the godawful mess that was Oblivion. I'd like to take advantage of the power of the Morrowind's dialogue system in order to create something like that... even to some small degree. We'll see how it turns out in the long run.



For now, though, I have another question.



Can anyone tell me why my '-Talk' topic won't seem to automatically add/link through the initial greeting?



I've got it working, for testing purposes, through the AddTopic line in the results box... but even then, it's still not clickable in standard dialogue. Am I missing something?

User avatar
Ross Thomas
 
Posts: 3371
Joined: Sat Jul 21, 2007 12:06 am

Post » Tue Jan 19, 2016 8:34 pm


What do you mean you "got it working" via AddTopic? As in, does the topic appear on the dialogue side-reel but clicking on it does nothing?



If the problem is that you set the topic up in the CS but for some reason no one has the topic in-game, even if you add it via console, then go back to the CS and look at any filters (eg ID, class, cell, journal) the dialogue topic responses may have. Even if the topic is set up, it will only appear in an NPC's dialogue box if they have a response available for it. To test, make a response under -Talk which has no filters whatsoever, and then add the topic via console in game. Every NPC should now have that topic and spit out that response. If this does not happen... that's a very disturbing bug.

User avatar
Britta Gronkowski
 
Posts: 3475
Joined: Mon Apr 09, 2007 3:14 pm

Post » Tue Jan 19, 2016 9:38 am

If I understand the problem correctly, you are introducing the topic through dialogue results in a greeting, but the topic does not display among the list of topics on the right side of the dialogue window. However if you choose another topic next (or close the dialogue and greet the NPC again) I suspect you will see the topic on the list.



This occurs because the 'script' in dialogue results does not run until the dialogue window screen is 'painted'. The topic is not yet known and therefore is not listed. However once the screen is refreshed (say by choosing a different topic) the topic will appear if its filtering conditions are satisfied as HangHimHigher observed.



This can also occur in reverse. By that I mean a topic that is known may not display if the filtering conditions are not satisfied when the refreshed dialogue window screen is displayed. This can happen with quest topics that are filtered for a journal index that is set in dialogue results of the response that introduces the new quest topic. This is why Bethesda does not usually update the journal until after the player has selected the quest topic. This is true even if the new topic is introduced in the text of the response (that is another way you might introduce your new topic although from the sounds of things it might not flow naturally from your greeting).

User avatar
Emily Jeffs
 
Posts: 3335
Joined: Thu Nov 02, 2006 10:27 pm

Post » Tue Jan 19, 2016 6:51 pm

What I mean to say is that I was hoping to make -Talk appear as a blue hyperlink in text of the NPC's greeting and introduce the topic to the player that way, rather than having to manually add it and lure them into clicking another topic in order to get the -Talk topic to appear. But, for whatever reason, I couldn't get it to work. I don't know if the parser just doesn't like the '-' or something, but for whatever reason it just doesn't detect -Talk and automatically add it to the topics list. Fortunately, it seems to have no problem automatically detecting the 'got a minute' topic, which will hopefully lure the player into clicking on it... thus making the -Talk topic appear without them having to exit out of the conversation or randomly ask about something else.



That's good to know about the Journal entries, though. I've done a lot of minor modding/tweaking over the years, but nothing that's ever involved journal/quest entries... so this is going to be a new experience in that regard.



In case anything I said above isn't clear, I'll give you a transcript of the conversation the player has with my NPC.



Vermiah Irethi (Initial Greeting): "Pssst! Over here, stranger! You're the one everyone saw getting dumped off by the Imperials, right? Well, for what it's worth, welcome to Morrowind. This lovely squat of a town is Seyda Neen, though you'll probably remember it as 'that festering bog I got out of as quickly as possible.' Before you go, though, you should know: Vvardenfell can be a very dangerous place... especially for a clueless outlander fresh off the boat. If you've got a minute, I'd be more than happy to offer you a little advice." (AddTopic -Talk)



'got a minute' (-Talk appears)



Vermiah Irethi: "Great! It's always a good idea to stop and -Talk with people. You never know when knowing the right person might just save your life... or a the very least a lot of time."



'-Talk'



Vermiah Irethi (1st -Talk): "Hey, listen. Don't worry too much if folks give you the cold shoulder at first. I've lived here for most my life now, and plenty of people still treat me like an n'wah. It takes time, and a lot of earned trust, to get a Dunmer to open up... and that little bit of advice stands true be they from right here in Vvardenfell to the Imperial City. Worth it though, I promise."


(Choice "You're not a native, then? Where did you live before coming to Seyda Neen" 1 "If people treat you so badly, why stay?" 2 "You're a Dunmer, and you certainly open up easy enough." 3 "I'm really not looking to make new friends." 4 "It sounds like a lot more work than it's worth, honestly." 5 "I don't plan on being here very long. It would be a very short-lived friendship." 6 "Not interested. I've got more important things to worry about." 7 "I need to go." 8 "-Walk Away-" 9)




And that's all I've got right now. Since this is meant to be the first NPC the player really -Talks to and converses with, all of the options are going to be incredibly specific to her character alone. She's also designed in such a way as to serve as the first person the player can really experience the variety of reactions their choices have. Say all the right things, and Vermiah might just end up smitten. Say all the wrong things, and her negative reactions might just surprise you.



As I get further into the design and work out some of the kinks, new conversation hub topics are definitely part of the next big push. I'll also have some placeholder dialogue options for -Talk which will enable the player to have a similar conversational experience with virtually every NPC in the game.



If that all goes according to plan, I might even offer up a download and let folks try it out while I work on creating custom-tailored interactions with Vanilla NPCs.




The part that really scares me though is the part where I have to try to create a balanced Dialogue -> Speechcraft Xp formula.

User avatar
Jonathan Braz
 
Posts: 3459
Joined: Wed Aug 22, 2007 10:29 pm


Return to III - Morrowind

cron