|
|
|
@ -52,7 +52,7 @@ a blank window rather than a table choose *World* → *Objects* from the menu.
|
|
|
|
|
|
|
|
|
|
Let's talk about the interface for a second. Every window in OpenMW CS has
|
|
|
|
|
*panels*, these are often but not always tables. You can close a panel by
|
|
|
|
|
clicking the small "X" on the title bar of the panel, or you can detach it by
|
|
|
|
|
clicking the small *X* on the title bar of the panel, or you can detach it by
|
|
|
|
|
either dragging the title bar or clicking the icon with the two windows. A
|
|
|
|
|
detached panel can be re-attached to a window by dragging it by the title bar
|
|
|
|
|
on top of the window.
|
|
|
|
@ -118,7 +118,7 @@ Finding records using filters
|
|
|
|
|
We will add an icon first. Open the *Icons* table the same way you opened the
|
|
|
|
|
*Objects* table: in the menu click *Assets* → *Icons*. If the window gets too
|
|
|
|
|
crowded remember that you can detach panels. The table is huge and not every
|
|
|
|
|
ring icon starts with "ring", so we have to use filters to find what we want.
|
|
|
|
|
ring icon starts with :code:`ring`, so we have to use filters to find what we want.
|
|
|
|
|
|
|
|
|
|
Filters are a central element of OpenMW CS and a major departure from how the
|
|
|
|
|
original Morrowind CS was used. In fact, filters are so important that they
|
|
|
|
@ -143,8 +143,8 @@ whether `<property>` matches `<pattern>`. The pattern is a regular expression,
|
|
|
|
|
if you don't know about them you should learn their syntax. For now all that
|
|
|
|
|
matters is that `.` stands for any character and `*` stands for any amount,
|
|
|
|
|
even zero. In other words, we are looking for all entries which have an ID that
|
|
|
|
|
contains the word "ring" somewhere in it. This is a pretty dumb pattern because
|
|
|
|
|
it will also match words like "ringmail", but it's good enough for now.
|
|
|
|
|
contains the word :code:`ring` somewhere in it. This is a pretty dumb pattern because
|
|
|
|
|
it will also match words like :code:`ringmail`, but it's good enough for now.
|
|
|
|
|
|
|
|
|
|
If you have typed the filter definition properly the text should change from
|
|
|
|
|
red to black and our table will be narrowed down a lot. Browse for an icon you
|
|
|
|
@ -225,7 +225,7 @@ and he's easy to find in the CS as his name comes early alphabetically.
|
|
|
|
|
:alt: Putting the ring into Arrille's inventory
|
|
|
|
|
|
|
|
|
|
Open the CS and open the *Objects* table (*World* → *Objects*).
|
|
|
|
|
Scroll down to Arrille, or use a filter like !string("ID","arrille").
|
|
|
|
|
Scroll down to Arrille, or use a filter like :code:`!string("ID","arrille")`.
|
|
|
|
|
|
|
|
|
|
Open another pane to edit him - either right click and select edit or use the
|
|
|
|
|
shortcut (default is shift double-click). Scroll down to the inventory section
|
|
|
|
@ -242,8 +242,8 @@ Fargoth to give it to the player in exchange for his healing ring.
|
|
|
|
|
.. figure:: https://gitlab.com/OpenMW/openmw-docs/raw/master/docs/source/manuals/openmw-cs/_static/images/chapter-1/Ring_to_Fargoth_1.png
|
|
|
|
|
:alt: Editing Fargoth to give ring to player
|
|
|
|
|
|
|
|
|
|
Open the *Topicinfo* Table (*Characters* → *Topic Infos*). Use a filter !string(Topic,ring)
|
|
|
|
|
and select the row with a response starting with "You found it!". Edit the record,
|
|
|
|
|
Open the *Topicinfo* Table (*Characters* → *Topic Infos*). Use a filter :code:`!string(Topic,ring)`
|
|
|
|
|
and select the row with a response starting with :code:`You found it!`. Edit the record,
|
|
|
|
|
firstly by adding a bit more to the response, then by adding a line to the script
|
|
|
|
|
to give the ring to the player - the same as used earlier in the console
|
|
|
|
|
|
|
|
|
@ -265,65 +265,64 @@ in the game, or by applying a similar process in the CS -
|
|
|
|
|
|
|
|
|
|
World/Cells
|
|
|
|
|
|
|
|
|
|
Select "Seyda Neen, Census and Excise Office"
|
|
|
|
|
Select `Seyda Neen, Census and Excise Office`
|
|
|
|
|
|
|
|
|
|
Right-click and select "View"
|
|
|
|
|
Right-click and select *View*
|
|
|
|
|
|
|
|
|
|
Use mouse wheel to zoom in/out, and mouse plus WASD keys to navigate
|
|
|
|
|
|
|
|
|
|
Click on the small chest
|
|
|
|
|
|
|
|
|
|
Either way, you should find the ID, which is "chest_small_02_lockprac".
|
|
|
|
|
Either way, you should find the ID, which is :code:`chest_small_02_lockprac`.
|
|
|
|
|
|
|
|
|
|
Open the Objects table (World/Objects) and scroll down to find this item.
|
|
|
|
|
Open the *Objects* table (*World* → *Objects*) and scroll down to find this item.
|
|
|
|
|
|
|
|
|
|
Alternatively use the Edit/Search facility, selecting ID rather than text,
|
|
|
|
|
enter "lockprac" (without the quotes) into the search box, press "Search",
|
|
|
|
|
which should return two rows, then select the "Container" one rather than the "Instance"
|
|
|
|
|
enter `lockprac` into the search box, press *Search*,
|
|
|
|
|
which should return two rows, then select the *Container* one rather than the *Instance*
|
|
|
|
|
|
|
|
|
|
Right-click and "Edit Record".
|
|
|
|
|
Right-click and *Edit Record*.
|
|
|
|
|
|
|
|
|
|
Right-click the "Content" section and select "Add a row"
|
|
|
|
|
Right-click the *Content* section and select *Add a row*
|
|
|
|
|
|
|
|
|
|
Set the Item ID of the new row to be your new ring - simplest way is probably to open the Objects
|
|
|
|
|
table if it's not already open, sort on the "Modified" column which should bring the ring,
|
|
|
|
|
with its status of "Added" to the top, then drag and drop to the chest row.
|
|
|
|
|
Set the Item ID of the new row to be your new ring - simplest way is probably to open the *Objects*
|
|
|
|
|
table if it's not already open, sort on the *Modified* column which should bring the ring,
|
|
|
|
|
with its status of *Added* to the top, then drag and drop to the chest row.
|
|
|
|
|
|
|
|
|
|
Increase the Count to 1.
|
|
|
|
|
Increase the *Count* to :code:`1`.
|
|
|
|
|
|
|
|
|
|
Save the addon, then test to ensure it works - e.g. start a new game and lockpick the chest.
|
|
|
|
|
|
|
|
|
|
Placing in plain sight
|
|
|
|
|
======================
|
|
|
|
|
|
|
|
|
|
Let's hide the Ring of Night vision in the cabin of the [Ancient Shipwreck]
|
|
|
|
|
(https://en.uesp.net/wiki/Morrowind:Ancient_Shipwreck), a derelict vessel
|
|
|
|
|
Let's hide the Ring of Night vision in the cabin of the `Ancient Shipwreck <https://en.uesp.net/wiki/Morrowind:Ancient_Shipwreck>`_, a derelict vessel
|
|
|
|
|
southeast of Dagon Fel. Open the list of Cells (*World* → *Cells*) and find
|
|
|
|
|
"Ancient Shipwreck, Cabin".
|
|
|
|
|
:code:`Ancient Shipwreck, Cabin`.
|
|
|
|
|
|
|
|
|
|
This will open a visualization of the cabin. You can navigate around the scene
|
|
|
|
|
just like you would when playing Morrowind. Use the WASD keys to move forward,
|
|
|
|
|
backwards, and sideways. Click and drag with the left mouse button to change the
|
|
|
|
|
direction you are looking. Navigate to the table in the cabin.
|
|
|
|
|
|
|
|
|
|
If you've closed the Objects table, reopen it via *World* → *Objects*. Navigate
|
|
|
|
|
to your Ring of Night Vision (you can find it easily if you sort by the "Modified"
|
|
|
|
|
column). Drag the ring from the Objects table onto the table in the Cell view.
|
|
|
|
|
If you've closed the *Objects* table, reopen it via *World* → *Objects*. Navigate
|
|
|
|
|
to your Ring of Night Vision (you can find it easily if you sort by the *Modified*
|
|
|
|
|
column). Drag the ring from the *Objects* table onto the table in the Cell view.
|
|
|
|
|
|
|
|
|
|
Now let's move the ring to the precise location we want. Hover over the ring and
|
|
|
|
|
click the middle mouse button. If you don't have a middle mouse button, you can
|
|
|
|
|
select an alternative command by going to *Edit* → *Preferences…* (Windows, Linux)
|
|
|
|
|
or *OpenMW* → *Preferences…* (macOS). Go to the Key Bindings section and choose
|
|
|
|
|
"Scene" from the dropdown menu. Then click on the button for "Primary Select" and
|
|
|
|
|
*Scene* from the dropdown menu. Then click on the button for *Primary Select* and
|
|
|
|
|
choose an alternative binding.
|
|
|
|
|
|
|
|
|
|
After you have switched to movement mode, you will see several arrows. Clicking
|
|
|
|
|
and dragging them with the right mouse button will allow you to move the object
|
|
|
|
|
in the direction you want.
|
|
|
|
|
|
|
|
|
|
If you'd like an easy way to test this, you can start OpenMW with the [game
|
|
|
|
|
arguments](https://wiki.openmw.org/index.php?title=Testing)
|
|
|
|
|
`--start="Ancient Shipwreck, Cabin" --skip-menu`. This will place you right in
|
|
|
|
|
If you'd like an easy way to test this, you can start OpenMW with the `game
|
|
|
|
|
arguments <https://wiki.openmw.org/index.php?title=Testing>`_
|
|
|
|
|
:code:`--start="Ancient Shipwreck, Cabin" --skip-menu`. This will place you right in
|
|
|
|
|
the cell and allow you to pick up and equip the ring in order to check that it
|
|
|
|
|
works.
|
|
|
|
|
|
|
|
|
@ -333,34 +332,36 @@ This is probably a suitable place to start talking about how navigation differs
|
|
|
|
|
in vanilla Morrowind.
|
|
|
|
|
|
|
|
|
|
There is advice in Scripting for Dummies, the definitive manual for Morrowind Scripting:
|
|
|
|
|
"If you give your scripts a common tag, that will make it easier to jump between the
|
|
|
|
|
different scripts of your project, e.g. start every script name with AA_Scriptname
|
|
|
|
|
this will put them right at the beginning of the list and keep them neatly together."
|
|
|
|
|
"If you give your scripts a common tag, that will make it easier to jump between the
|
|
|
|
|
different scripts of your project, e.g. start every script name with AA_Scriptname
|
|
|
|
|
this will put them right at the beginning of the list and keep them neatly together."
|
|
|
|
|
|
|
|
|
|
This is valid for the rather poorer navigation facilities there, but it's not sensible for
|
|
|
|
|
the OpenMW CS. Some modders took it further, and started script names and object id with numbers,
|
|
|
|
|
typically "1", to bring the items even earlier in the default alphabetical sorts. In fact
|
|
|
|
|
the CS won't allow names/ids to start with numbers or to include ".".
|
|
|
|
|
typically :code:`1`, to bring the items even earlier in the default alphabetical sorts. In fact
|
|
|
|
|
the CS won't allow names/ids to start with numbers or to include :code:`.`.
|
|
|
|
|
|
|
|
|
|
There are better options available:
|
|
|
|
|
|
|
|
|
|
Filtering, which isn't available at all in TESCS - put in a filter like
|
|
|
|
|
|
|
|
|
|
!string("ID",".*ring.*")
|
|
|
|
|
.. code::
|
|
|
|
|
|
|
|
|
|
!string("ID",".*ring.*")
|
|
|
|
|
|
|
|
|
|
to find all IDs which contain the string "ring"
|
|
|
|
|
to find all IDs which contain the string :code:`ring`
|
|
|
|
|
|
|
|
|
|
Sorting, which is available in some parts of TESCS, but not for scripts (other than script names being
|
|
|
|
|
sorted in ascending order)- hence the recommendation
|
|
|
|
|
Typically the "Modified" column is useful here - most items will have "Base" status, unchanged from
|
|
|
|
|
Typically the *Modified* column is useful here - most items will have *Base* status, unchanged from
|
|
|
|
|
the base game.
|
|
|
|
|
|
|
|
|
|
"Added" status" will cover those items added in this addon.
|
|
|
|
|
*Added* status will cover those items added in this addon.
|
|
|
|
|
|
|
|
|
|
"Modified" status will cover items from the base game which have been modified in this addon.
|
|
|
|
|
*Modified* status will cover items from the base game which have been modified in this addon.
|
|
|
|
|
|
|
|
|
|
Click on the top of the column to toggle between ascending and descending order - thus between "Added"
|
|
|
|
|
and "Modified" at the top. Or put your desired modified status into a filter then sort alphabetically
|
|
|
|
|
Click on the top of the column to toggle between ascending and descending order - thus between *Added*
|
|
|
|
|
and *Modified* at the top. Or put your desired modified status into a filter then sort alphabetically
|
|
|
|
|
on a different column.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|