Difference between revisions of "Advanced Quest Tutorial"

4,439 bytes added ,  14:36, 6 August 2007
m
applying template
imported>ShadowDancer
imported>Qazaaq
m (applying template)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Unfinished}}
This tutorial is designed to pick up and add onto where the [[Quest Tutorial]] left off.  It will also provide some alternative ideas and values compared to those used in the first '''Quest Tutorial'''.  It should also be noted that this tutorial will assume that the individual already has the skills needed to duplicate items, create worldspaces, and exteriors without causing unnecessary changes to existing objects already in Oblivion.
This tutorial is designed to pick up and add onto where the [[Quest Tutorial]] left off.  It will also provide some alternative ideas and values compared to those used in the first '''Quest Tutorial'''.  It should also be noted that this tutorial will assume that the individual already has the skills needed to duplicate items, create worldspaces, and exteriors without causing unnecessary changes to existing objects already in Oblivion.


Line 215: Line 217:
My quest starts out with the player not knowing anything about the key that was found.  Since the player doesn't have a clue about the key, there was no target set up for stage 10 on the ''Quest Target'' tab.  Now that the player can get a direction to travel from the NPC, its time to set up a ''Quest Target'' so that the player knows where to head in order to continue on the quest.
My quest starts out with the player not knowing anything about the key that was found.  Since the player doesn't have a clue about the key, there was no target set up for stage 10 on the ''Quest Target'' tab.  Now that the player can get a direction to travel from the NPC, its time to set up a ''Quest Target'' so that the player knows where to head in order to continue on the quest.


For this part of the quest I chose to create a new ''DeadSkeleton'' the same way that I created a new key.  I decided to drop the skeleton behind a rock at the end of the road by ''DragonClawRockExterior'' since it is the only major road heading towards Skyrim (like the player is told by the NPC).  When you initially place the skeleton, it is upright even though the skeleton is dead.  Running the ''Havok Sim'' for a couple of seconds takes care of this nicely by letting the skeleton fall down.  Any adjustments can be made at this point if the skeleton parts do something you don't want like sliding down the terrain and into the open.  I also placed an ''XMarkerHeading'' at the end of the road with an added ''Reference Editor ID'' of ''FasrielGhostMarker'' where it disappears into the terrain.  Once the skeleton and XMarkerHeading are placed, its time to go to the ''Quest Target'' tab of your quest.
For this part of the quest I chose to create a new ''DeadSkeleton'' the same way that I created a new key.  I decided to drop the skeleton behind a rock at the end of the road by ''DragonClawRockExterior'' since it is the only major road heading towards Skyrim (like the player is told by the NPC), put ''FasrielsSkeleton'' in the ''Reference Editor ID'' box, and check the ''Initially Disabled'' checkbox so it isn't found too early.  When you initially place the skeleton, it is upright even though the skeleton is dead.  Running the ''Havok Sim'' for a couple of seconds takes care of this nicely by letting the skeleton fall down.  Any adjustments can be made at this point if the skeleton parts do something you don't want like sliding down the terrain and into the open.  I also placed an ''XMarkerHeading'' at the end of the road with an added ''Reference Editor ID'' of ''FasrielGhostMarker'' where it disappears into the terrain.  Once the skeleton and XMarkerHeading are placed, its time to go to the ''Quest Target'' tab of your quest.


Since I am going to use the ''FasrielGhostMarker'' as the quest target, the easiest way to select it is to click the ''Select in Render Window'' button and then double-click on the ''FasrielGhostMarker''.  Now its time to add some conditions so that this target only shows up when the quest is in stage 20 and the Player is at a distance greater than 150.  For this to occur I added the conditions:
Since I am going to use the ''FasrielGhostMarker'' as the quest target, the easiest way to select it is to click the ''Select in Render Window'' button and then double-click on the ''FasrielGhostMarker''.  Now its time to add some conditions so that this target only shows up when the quest is in stage 20 and the Player is at a distance greater than 150.  For this to occur I added the conditions:
Line 253: Line 255:
Going back into the main script for the quest, I add three ''Short'' variables named ''Counter'', ''DoOnce'' and ''EnableRef'' as well as the additional scripting just before the ''End'' of the ''GameMode'' block:
Going back into the main script for the quest, I add three ''Short'' variables named ''Counter'', ''DoOnce'' and ''EnableRef'' as well as the additional scripting just before the ''End'' of the ''GameMode'' block:
<pre>
<pre>
   If Player.GetDistance FasrielGhostMarker > 150 && GetStage ShadowMages == 20
   If Player.GetDistance FasrielGhostMarker > 500 && GetStage ShadowMages == 20 && EnableRef == 0
       Return
       Return
   ElseIf Player.GetDistance FasrielGhostMarker < 150 && GetStage ShadowMages == 20 && EnableRef == 0
   ElseIf Player.GetDistance FasrielGhostMarker < 500 && GetStage ShadowMages == 20 && EnableRef == 0
       Messagebox "An eerie chill runs up your spine like some unseen force is watching you."
       Messagebox "An eerie chill runs up your spine as if some unseen force is watching you."
      FasrielGhostMarker.Disable
       Set EnableRef to 1
       Set EnableRef to 1
      SCGhostFasrielRef.SetActorAlpha 0.5
       SetEssential SCGhostFasriel 1
       SetEssential SCGhostFasriel 1
       SCGhostFasrielRef.Enable
       SCGhostFasrielRef.Enable
      SCGhostFasrielRef.SetActorAlpha 0.5
       Undead1.Enable
       Undead1.Enable
       Undead2.Enable
       Undead2.Enable
Line 304: Line 305:
         Set DoOnce to 0
         Set DoOnce to 0
       EndIf
       EndIf
  EndIf
  If SCGhostFasrielRef.IsInCombat == 0 && Counter == 5
      SCGhostFasrielRef.SetGhost 1
      Set Counter to 6
      SCGhostFasrielRef.StartConversation Player
   EndIf
   EndIf
</pre>
</pre>


This initiates and runs the battle as soon as the Player shows up at the ''FasrielGhostMarker'' activating and deactivating two of the ''SC1UndeadLvl100'' leveled lists at a time until all ten have been activated and deactivated.
This additional script initiates and runs the battle as soon as the Player shows up at the ''FasrielGhostMarker'' activating and deactivating two of the ''SC1UndeadLvl100'' leveled lists at a time until all ten have been activated and deactivated. It also makes Fasriel's Ghost come up to the Player afterwards and initiate a conversation.  Fasriel's Ghost is set to ghost state so that the Player can't pickpocket the ghost (who ever heard of pickpocketing a ghost?).  Now its time to add some more ''Topics'' for Fasriel's Ghost so that we can find out more about the quest.
 
==Fasriel's Topics==
Since the ''Topics'' of '''SCShadowMages''' and '''SCJagarTharn''' have already been added to the Player from talking to the first NPC, I decided to reuse them for the conversation with Fasriel's Ghost.  The five new ''Topics'' I added are as follows:
*SCBody
*SCGhostNo
*SCGhostYes
*SCLocation
*SCShadowfall
 
My ''Topics'' items look like this:
{|border="1" cellpadding="5" cellspacing="0"
|-
! style="background:#efefef;" colspan=1 | EditorID
! style="background:#efefef;" | Topic Text
! style="background:#efefef;" | Info/Response Details
! style="background:#efefef;" | Emotion
! style="background:#efefef;" | Result Scripts
! style="background:#efefef;" | Add Topics
! style="background:#efefef;" | Choices
! style="background:#efefef;" | Checkboxes
|-
|SCBody
|Where is your body?
|Before I can tell you where my body lies, you must swear to use the knowledge within Shadowfall to further the ends of the Empire.
Do you so swear?
|Neutral (50)
|None
|None
|SCGhostYes
SCGhostNo
|None
|-
|SCGhostNo
|No, not at this time.
|Then I can not tell you where my body lies.
|Sad (70)
|None
|None
|None
|Goodbye
|-
|SCGhostYes
|Yes, I swear.
|My body lies to the north of the boulder at the end of the road you followed here.
|Happy (70)
|SetStage ShadowMages 30
Player.SetFactionRank ShadowMageFaction 0
FasrielsSkeleton.Enable
|None
|None
|None
|-
|SCJagarTharn
|Jagar Tharn
|Jagar Tharn sought the key to Shadowfall in order to gain access to it.
|Neutral (50)
|None
|SCShadowfall
|None
|None
|-
|SCLocation
|Where is Shadowfall?
|Shadowfall Manor is located on an island to the south of the Imperial City.
|Neutral (50)
|None
|None
|None
|Info Refusal
|-
|SCLocation
|Where is Shadowfall?
|You will need the amulet that is on my physical body.  When you wear the amulet, the location of Shadowfall shall become known to you.
|Neutral (50)
|None
|SCBody
|None
|None
|-
|SCShadowfall
|Shadowfall
|Shadowfall is the manor that we used for the studies and research that was not to be known by the Mages Guild.
It was hidden with spells and enchantments so that only the Shadow Mages could find it.
|Neutral (50)
|None
|SCLocation
|None
|None
|-
|SCShadowMages
|The Shadow Mages
|The Shadow Mages were a secret group of mages who only answered to the Emperor himself.
|Neutral (50)
|None
|None
|None
|None
|-
|}
Each of the above items also has a condition consisting of:
{|border="1" cellpadding="5" cellspacing="0"
|-
! style="background:#efefef;" colspan=1 | Target
! style="background:#efefef;" | Function Name
! style="background:#efefef;" | Function Info
! style="background:#efefef;" | Comp
! style="background:#efefef;" | Value
! style="background:#efefef;" |
|-
|no
|GetIsID
|NPC: 'SCGhostFasriel'
|==
|1.00
|AND
|-
|}
This is so only Fasriel's Ghost can give this information to the Player.  The two '''SCLocation''' topics also have additional conditions like the '''SCShadowMages''' topics earlier.  The '''SCLocation''' topic with the ''Info Refusal'' checkbox checked has:
{|border="1" cellpadding="5" cellspacing="0"
|-
! style="background:#efefef;" colspan=1 | Target
! style="background:#efefef;" | Function Name
! style="background:#efefef;" | Function Info
! style="background:#efefef;" | Comp
! style="background:#efefef;" | Value
! style="background:#efefef;" |
|-
|no
|GetDisposition
|[ TARGET ]
|<
|75.00
|AND
|-
|}
The other '''SCLocation''' topic has an additional condition of:
{|border="1" cellpadding="5" cellspacing="0"
|-
! style="background:#efefef;" colspan=1 | Target
! style="background:#efefef;" | Function Name
! style="background:#efefef;" | Function Info
! style="background:#efefef;" | Comp
! style="background:#efefef;" | Value
! style="background:#efefef;" |
|-
|no
|GetDisposition
|[ TARGET ]
|>=
|75.00
|AND
|-
|}
 
 
                               (*to be continued*)
                               (*to be continued*)
Anonymous user