Wheel of Time - Morrowind Mod

Tel'aran'rhiod

[Home] [Members] [Links and Downloads] [Forums] [Modder's Resource] [Files and Pictures] [Design Specs] [Project Plan] [What's New] [Issues] [Search]


Up

Table of Contents

Requirements

     Coding_challenges

Telaranrhiod_coding_needs

     Entering_Telaranrhiod

     During_Telaranrhiod

     Exiting_Telaranrhiod

 


Requirements

The following describes what Tel'aran'rhiod behaves like.  These requirements do not necessarily mean we can code this.

Requirement Description

Implementation Note

The world contains no people except:
  1. Those who accidentally dream themselves there.
  2. Those who dream themselves there on purpose.
  3. Those who use ter'angrials to dream themselves there.
  4. Those who are there in the flesh.
This means that the world must be almost unpopulated and the people who are there are most likely not in the location they are in the real world.

Code must be written to remove everyone from the world except those desired for questing purposes.

Challenges for this coding will be:

1)  We will not be able create non-unique characters like in Morrowind, such as "Imperial Guard."  Everyone will have to have a unique ID.  Approximately 617 NCP's in Morrowind are non-uniques.  In WOT, we would probably have a lot more.

2)  When enabled, each NCP must be checked to make sure they are not dead before re-enabling.

The world looks almost like the real world.  Objects that have been in the real world a long time are very stable and look the same in the dream world.

Objects that haven't been in the real world long, like letters, vases of flowers, etc may or may not be found in the same place in the dream world.  They may flicker or come and go.

We have pretty much decided this will not be the way we have it.  All items will be exactly the same in Tel'aran'rhiod as they are in the real world.
The entire world is located in Tel'aran'rhiod.  Possibly other worlds as well. We need our entire gaming world to be duplicated or used to create an accurate picture of Tel'aran'rhiod.
The dreamer can think themselves to anyplace in the dream world. This is obviously not possible.  We will probably use the gateway script and just open it up to all possible locations for gateways instead of just the places the player is allowed to gate to.
The dreamer can walk around anywhere in Tel'aran'rhiod just like in the real world. No special scripting for this.
A person can make themselves look like anything they want.  They can wear any clothes they want. We probably won't have a menu to allow them to change clothes or faces.
When a person does not have very good control, their clothing items will flicker and change. We can script that the more advanced a person is in the skill the less clothes change.  The less advanced, the more they do.  Clothes will obviously not be controllable, they will be picked by code.
A person may not affect anything in the real world by what they do in Tel'aran'rhiod - except the injury or death of another in the dream world. There are two possibilities with this:

1)  we do not let people pick up anything.

2)  we let people pick things up but we don't let them take it when they leave.

If we chose the second, we will not be able to make them drop it in the same place they picked it up.  We cannot program it so that they do.  Most items are not unique nor can we find the previous location of an item.  So, items may end up in different places.
We could use the function that checks to see if a player changed cells, although I don't think that works for teleporting which is what we would do half the time.

If we chose the first, some of the main reasons to go to Tel'aran'rhiod will be missing.  The reading of documents for spying purposes.  The opening of cabinets and drawers to locate items.

Domesticated animals are not found in the dream world.  We cannot remove animals and replace them back.  Animals do not have unique names.  We could create all domestic animals with unique names but that would cause problems with respawning for any of them. 
Very few people may enter the dream world in the flesh.  Those who enter, usually enter during sleep or a waking trance.  When they wake, they are where ever their body is. Since the player can move around anywhere in the dream world, we must record their location before they enter.  Then we must teleport them back to this location when they exit.

Challenges:

  1. There are many cells in this game.  Estimated of over 10,000 exterior and 2,000 interior.   Script will need to check for all the interiors and all the unique named exterior and region named cells.
  2. Scripting does not allow for string variables so we must script each location as a number.  The code must go through each line of code to find the location of the player and record the number in a variable.
  3. The x, y, z locations of the player must be stored.
  4. Scripting must also be created for those cells to teleport the player back to the right cell.  Then they will be relocated to the stored x,y,z locations.

Pros:

It may be the same code used to store user defined gateway locations.  Besides the fixed locations for gateways, we can also create a number of slots for user defined locations where the user marks a place when they are there and can later travel back there.

A person can create anything they want with just their minds.  They may create objects, change people's clothes, etc.  It is all non-existent in the real world. I see no way we can do this no matter how much code is written.
No fires are burning in the dream world. This cannot be done without each candle and fire being a unique ID.
Lighting is the same as in the world, day or night, but muted somewhat. Proposed to cast a spell that affects the player's eyesight.

 


Coding challenges

Most likely this code will contain the most amount of scripts for anything in our mod.  Scripts can only contain a limited number of characters.  IF statements may only have so many ElseIf's.  This may end up to be 40-100 scripts.  Some of the actions, such as marking location, checking for items, and enable/disable NCP's will require a lot of script to run through.  This may cause a large lag when the script launches. 

Testing this will be imperfect.  The final set of code for marking cell locations and teleporting back cannot be finished until all the interior and exterior cells are complete - at least created and named.


Tel'aran'rhiod coding needs

The following details what will be needed to make the world behave like Tel'aran'rhiod.

Entering Tel'aran'rhiod

Player activates an item that has a script on it.  This script launches the code.

  1. Check the player for any inventory items including clothing.
    Prior to using the ring/ter'angrial the player must empty their inventory.  They cannot take anything into Tel'aran'rhiod.

    If the player has any inventory items, they will hit the error message that tells them to remove those items.  Then the script will stop.  They can then try again.

    Not sure what to do about clothes.  We don't want the player stealing clothes.

  2. Record location of player.
    This will require many scripts linked together.  Each cell name will get a number.  The player will be tested to see what cell they are in and store that number into a global variable.

    Store the x, y, z location of the player.
     
  3. Cast spell of unlimited duration to change the lighting.
     
  4. Run script to remove all NCP's.
    This script will also span many individual scripts.  It will deactivate all NCP's.
    Note:  We cannot have any NCP's with the same names.  Like "palace guard" or such.  All NCP's must have unique names.
    Number of NCP's:  3000+
     
  5. Activate Tel'aran'rhoid NCp's.
    There will be quests or people in Tel'aran'rhiod.  Those people will need to be enabled if they are not dead.
     
  6. Record the player's clothing items…slthough, maybe we should make the player change into a special sleeping garmet of their underwar

 

During Tel'aran'rhiod

  1. If player leaves a cell, run script to drop items.  This will drop the items into the cell that the player walked into.  Unfortunately we cannot drop them in the cell they came from. 

    This is a very long script.  It will contain code that checks for every item and places it on the floor in front of the player.
     

  2. Depending on the skill level, change clothing items periodidly.  There should be a set of clothing that is only used in Tel'aran'rhoid.

 

Exiting Tel'aran'rhiod

The player will activate the item again.  They will be asked if they want to leave the dreamworld or go to another location.  If the player ansers "Yes" to leave:

  1. Check player for any items.  If player has those items, remove them from inventory and drop on floor.
     
  2. Replace the player's clothes with what they were were before dreaming.
     
  3. Turn off the spell for vision.
     
  4. Replace all NCP's that are not dead.  Do the dead check first.
    Note:   All NCP's will be placed at their original location.  If there are special NCP's such as Rand that will move around will have to have special scripts that check the date and re-enable the character in the correct location.
     
  5. Remove all Tel'aran'rhiod NCP's that were not killed.

The Wheel of Time and all its subject matter is copyright by Robert Jordan.  Morrowind, the gaming engine, and the modules created for it are copyright by Bethesda.  This project is a not-for-profit endeavor.  It is done in homage to a great fantasy series.  It is not intended to be an official representation of the works of Robert Jordan.
For problems or questions regarding this web contact the webmaster: Kiriel@direcway.com.
Last updated: August 31, 2005.