Difference between revisions of "Bethesda Tutorial Scenes"

2,824 bytes added ,  14:26, 11 February 2021
→‎Additional Functionality: Mention IsSceneActionComplete
imported>Catwheezle
m (More svelte template usage: no "Template:" needed.)
imported>Thingy Person
(→‎Additional Functionality: Mention IsSceneActionComplete)
(17 intermediate revisions by 2 users not shown)
Line 111: Line 111:


=Playing the Scene=
=Playing the Scene=
We can either play a scene through script (by setting it as a property and calling [[Start_-_Scene|Start()]] on it), or by checking the "Begin on quest start" box on the scene tab.  
We can either play a scene through script (by setting it as a property and calling [[Start_-_Scene|Start()]] on it), or by checking the "Begin on quest start" box on the scene tab.
 
''Addition by --[[User:Layam|Layam]] ([[User talk:Layam|talk]]) 14:27, 1 January 2013 (EST)''
 
One nice way to get this scene going would be to create a new dialogue topic to encourage Bendu to admit his true feelings.
 
Go back to the Dialogue Views tab in GSQ01, select the view we've got there, then add a new branch called 'GSQ01BenduAdmitFeelings'.  Open up the topic, add a response (maybe 'I've seen the way you look at her, you should admit how you feel to her.').  To get the scene to start we first need to create a property on the response info script.  The topic info will already have a script attached, so in the bottom right panel, click on that script, then properties, then add a property of type 'Scene' called MSQ01BenduGilfreScene.  That should auto-fill so no need to do that.  Then in the end script fragment, add the following line:
 
<code>MSQ01BenduGilfreScene.Start()</code>
 
Now you're good to test.
 
'''Note: ''' If the quest has already been started in the save game you are testing with, You may find that the scene simply refuses to run.  I believe that this is because the aliases are only filled when the quest starts and one of the actor aliases the scene uses is blank.  A workaround for this is to stop and start the quest with the console:
 
<code>
StopQuest MSQ01
StartQuest MSQ01
</code>
 
''Addition end''
 
''Alternative Addition by ----[[User:Lmstearn|Lmstearn]] ([[User talk:Lmstearn|talk]]) 2015-01-22T12:50:33 (EST)
More in the spirit of the quest:
 
On acceptance of the amulet quest, Bendu says in a new phase added at the beginning after a 4 second timer for the Quest Objective message to clear: "Excuse me for now, as I have a meeting with my dear friend Gilfre."
 
As player exits the workers house, witness Bendu saying "Gilfre, Fling me into the ash pits of Malacath, but I did not take the amulet. I was robbed, but I vow by the Nine to retrieve it for you." She responds "You would? But I would be waiting for the dawning of the fifth era, Bendu!"
 
"As you wish, Gilfre, it would look rather becoming on a draugr!"
 
On returning the amulet to Bendu, a similar scene is triggered (it cannot be duplicated in the CK so TES5edit was used- see note below) where Gilfre is more conciliatory.
 
''Alternative Addition end''


=Additional Functionality=
=Additional Functionality=
New Phases can be added at the beginning or at any point during a scene as well as at end.
It's possible to add scripts to a scene's beginning or end by clicking "Edit Data" at the top of the tab. You can even double-click on a phase title and put scripts at the beginning and end of individual phases. As you might imagine, this opens up a lot of pretty complicated behavior and functionality. In fact, there are quests in Skyrim that are little more than scenes with scripts firing at appropriate phases.  
It's possible to add scripts to a scene's beginning or end by clicking "Edit Data" at the top of the tab. You can even double-click on a phase title and put scripts at the beginning and end of individual phases. As you might imagine, this opens up a lot of pretty complicated behavior and functionality. In fact, there are quests in Skyrim that are little more than scenes with scripts firing at appropriate phases.  


Finally, the rule about "all actions must complete before a phase finishes" can even be broken. That is the default, but if you look in the scene window, you can see that it's also possible to set conditions which will end the particular phase.  
Finally, the rule about "all actions must complete before a phase finishes" can even be broken. That is the default, but if you look in the scene window, you can see that it's also possible to set conditions which will end the particular phase. The [[IsSceneActionComplete]] condition function can be especially useful if some actions in a phase can complete and others can't.


=Caveats=
=Caveats=
Line 124: Line 158:
Can you make Bendu greet Gilfre with "Good morning," "Good afternoon," or "Good evening," depending on the time of day?  
Can you make Bendu greet Gilfre with "Good morning," "Good afternoon," or "Good evening," depending on the time of day?  


=Notes=
* If TESedit is used to duplicate scene records, take care ''not'' to delete any existing dialogues of phases in the copy as they refer to the original infos. Best practice is to remove phases without removing the linked forms and creating new phases with new action dialogue infos (unless the old dialogues are to be repeated)


{{Tutorial_Bottom_Bar
{{Tutorial_Bottom_Bar