Difference between revisions of "A beginner's guide, lesson 6 - Quest Dialogue"

no edit summary
imported>Pyrocow2
m (adding sections for preamble)
Tag: Manual revert
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Featured}}
{{Featured}}
 
{{ABGContents}}
'''TES IV: Oblivion Modding for Beginners
 
'''B. Scripts, Quests and NPCs<br />
:'''Lesson Six: Quest Focus; Dialogue


==Preamble==
==Preamble==
Line 577: Line 573:
It expects to find for each dialogue response files, which we have not created. One is an MP3 which contains the sound files, and the others are lip synch files used to animate the actor's face as we carry out the dialogue. The text is supposed to appear on screen for the duration of these files.  
It expects to find for each dialogue response files, which we have not created. One is an MP3 which contains the sound files, and the others are lip synch files used to animate the actor's face as we carry out the dialogue. The text is supposed to appear on screen for the duration of these files.  
Since we don't have them yet, the text runs very quickly. In later tutorials we will look at polishing this mod to include these files. For now, these are cosmetic problems. It's irritating not to see the text for any length of time, but it can't be helped until we add those MP3's.  
Since we don't have them yet, the text runs very quickly. In later tutorials we will look at polishing this mod to include these files. For now, these are cosmetic problems. It's irritating not to see the text for any length of time, but it can't be helped until we add those MP3's.  
It doesn't stop the quest running. You can repeatedly play the on-screen text by selecting the topic message for you until you get the message
It doesn't stop the quest running. You can repeatedly play the on-screen text by selecting the topic message for you until you get the message. (Alternatively, you could install a mod like [http://www.tesnexus.com/downloads/file.php?id=16622 Universal Silent Voice].)


The second problem deals with the script as it currently stands and may not be so obvious to a non-scripter. A quest script runs every 5 seconds. That means that every 5 seconds this script tries to add the topic BGMMessage4u to the players topic list. I don't honestly know what the effect of repeatedly adding a topic to the player's list is, but I suspect that extra requests to add the topic are simply ignored.  
The second problem deals with the script as it currently stands and may not be so obvious to a non-scripter. A quest script runs every 5 seconds. That means that every 5 seconds this script tries to add the topic BGMMessage4u to the players topic list. I don't honestly know what the effect of repeatedly adding a topic to the player's list is, but I suspect that extra requests to add the topic are simply ignored.  
Line 1,064: Line 1,060:
|-
|-
!  ADD TOPICS
!  ADD TOPICS
|
| ''No add topic''
*BGWill
|-
|-
!  RESULT SCRIPT
!  RESULT SCRIPT
Line 1,092: Line 1,087:
|-
|-
!  ADD TOPICS
!  ADD TOPICS
|  ''No script''
|  ''No add topic''
|-
|-
!  RESULT SCRIPT
!  RESULT SCRIPT
|  ''No add topic''
|  ''No script''
|}  
|}  


Line 1,105: Line 1,100:
Try this one yourself using this summary to guide you.  
Try this one yourself using this summary to guide you.  
Don't forget the quest bump script.  
Don't forget the quest bump script.  
You will need to add a new topic called BGHubart.
You will need to add a new topic called ''BGHubart''.
{| class="wikitable" border="1" cellpadding="5"
{| class="wikitable" border="1" cellpadding="5"
!colspan=2| '''BGWill'''
!colspan=2| '''BGWill'''
Line 1,127: Line 1,122:
|
|
*BGHubart
*BGHubart
*BGMVilanusVilla (In case the player talked to Vilanus before using the "Message for you" topic)
|-
|-
!  RESULT SCRIPT
!  RESULT SCRIPT
Line 1,144: Line 1,140:
Again we can create a new item from scratch, but it means trying to add artwork to the game. Unless we want the letter or scroll to look completely unique, and have some talent in that direction, it is a chore we don't need to do.
Again we can create a new item from scratch, but it means trying to add artwork to the game. Unless we want the letter or scroll to look completely unique, and have some talent in that direction, it is a chore we don't need to do.


Instead, select any letter from the Items->Book list in the object window, change its ID to something meaningful like 'BGHubartLetter'.
Instead, select any letter from the Items->Book list in the object window, change its ID to something meaningful like ''BGHubartLetter''.


The text on the right hand side indicates the content of the letter. We can edit this. I will look at the precise details and syntax needed to produce text in  another lesson. It uses standard HTML tags.  
The text on the right hand side indicates the content of the letter. We can edit this. I will look at the precise details and syntax needed to produce text in  another lesson. It uses standard HTML tags.  
Line 1,175: Line 1,171:
Then click the "Compile Result" button.
Then click the "Compile Result" button.


We can also add a new response info to the topic called BGHubart, to direct the player to Chorrol:
We can also add a new response info to the topic called ''BGHubart'', to direct the player to Chorrol:
{| class="wikitable" border="1" cellpadding="5"
{| class="wikitable" border="1" cellpadding="5"
!colspan=2| '''BGHubart'''
!colspan=2| '''BGHubart'''
Line 1,292: Line 1,288:
We want to set the internal scene in readiness for the PC's arrival. I have used a copy of the White Stallion Lodge as a base. We want to customise this. Again we can work on this in more detail when we polish the quest prior to release.
We want to set the internal scene in readiness for the PC's arrival. I have used a copy of the White Stallion Lodge as a base. We want to customise this. Again we can work on this in more detail when we polish the quest prior to release.


We want to remove some of the clutter. We also want to give the impression a fight has taken place. Tips some chairs and tables over (Y=90). Remember this set will be locked at the start and you will only use it for a short time, so don't go overboard. We also want to place some props. We need an amulet to trigger the next phase. Why an amulet? It's small enough that you have to look for it, but not so small that it becomes hard to find. Copy an existing item of jewelry as a base and edit it. Change the ID to ''BGEmbossedAmulet''. Check off the ''Quest Item'' box. The player can not drop or sell quest items.
We want to remove some of the clutter. We also want to give the impression a fight has taken place. Tips some chairs and tables over (Y=90). Remember this set will be locked at the start and you will only use it for a short time, so don't go overboard. We also want to place some props. We need an amulet to trigger the next phase. Why an amulet? It's small enough that you have to look for it, but not so small that it becomes hard to find. Copy an existing item of jewelry from Items->Clothing->Amulet as a base and edit it. Change the ID to ''BGEmbossedAmulet''. Check off the ''Quest Item'' box. The player can not drop or sell quest items.


We also want to create a custom letter called ''BGPartialLetter''. Set the letter as a quest item. We will refer to it in some scripts.
We also want to create a custom letter called ''BGPartialLetter''. Set the letter as a quest item. We will refer to it in some scripts.
Line 1,370: Line 1,366:
|
|
*GetIsId 'BGCptHubart' == 1
*GetIsId 'BGCptHubart' == 1
*GetStage 'BGM001' >= 20
*'''GetStage 'BGM001' == 20'''
|-
|-
!  ADD TOPICS
!  ADD TOPICS
Line 1,379: Line 1,375:
|
|
  SetStage BGM001 30
  SetStage BGM001 30
|}
Add one more response to this topic in case the player tries to talk to Hubart again after they've been given the key to the cottage, but before they've found it.
{| class="wikitable" border="1" cellpadding="5"
!colspan=2| '''BGCourier'''
|-
!  TOPIC TEXT
|  Courier
|-
!  RESPONSE
"Did you check out the cottage?"
|-
!  CONDITIONS
|
*GetIsId 'BGCptHubart' == 1
*'''GetStage 'BGM001' == 30'''
|-
!  ADD TOPICS
| ''No add topic''
|-
!  RESULT SCRIPT
| ''No script''
|}  
|}  


Anonymous user