Difference between revisions of "Common Bugs"

2,864 bytes added ,  19:42, 14 January 2009
imported>Realmeleven
m (Subheadings diminished)
imported>Realmeleven
Line 31: Line 31:


To date, there is no publicly documented solution or workaround for this aspect of the “Ghostly NPC bug”.
To date, there is no publicly documented solution or workaround for this aspect of the “Ghostly NPC bug”.
This may have something to do with developer assumptions about user familiarity with the construction set. The last thing that needs to be done prior to release of an expansion pack or "mod" is to manually correct all the paths in the modified cell. This is because "AI"s in the Havoc engine are restricted to two dimensional navigation. Pathways reduce a three dimensional environment to a two dimensional topology. So the scope of actor movement needs to be defined manually and this makes path editing one of the most important and perhaps most overlooked aspects of expansion pack development using the TES4 Construction Set.
If a collision surface obstructs direct access between path nodes, an NPC will attempt to penetrate the collision boundary, and after a time-out of 5-10 seconds will be moved to the target path node. By disconnecting path nodes on either side of a wall or other intentional obstruction, the chances of ghost-walking may be reduced.
====Ambulatory Mode is Not Always Corrected to Destination on [[MoveTo]]& [[SetPos]]====
The engine doesn't always check and correct the ambulatory mode (whether actor is swimming, walking, running, or flying) to the mode appropriate to the teleport destination. Although a water-based door that leads to a land-based destination corrects the ambulatory mode on teleport, this correction does not occur after other in-game processes have run. However, functions such as [[MoveTo]] and [[SetPos]] are not the complete teleport package and do not check and correct ambulatory mode.
While an actor transported using MoveTo or SetPos from a land based environment to a water based environment winds up in swimming mode, an actor moved from water to land or air remains in swimming mode. For example, a sea-bourne boarder ejected from the trigger zone surrounding the ship to a point in mid-air will continue to swim through the air with a gently decaying altitude, instead of falling into the water and making the intended splash.
This problem is solved in modifications by using the IsSwimming function to filter for ambulatory modes prior to triggering [[MoveTo]] or [[SetPos]] functions on actors. The use of a hidden inaccessible pair of doors, one of which is script activated on the player with it's teleport destination in the desired position will also correct ambulatory mode.
In an example involving engine behaviour, if a collision surface exists between a swimming actor and a land-based path node targeted by that actor, the actor will be relocated to the target path node after a brief time out but will sometimes still be "swimming" in mid air above the target. The best solution, although not perfect, is to ensure that preferential water-based paths that lead to unobstructed secondary land based nodes are deployed to divert swimming actors away from obstructed land-based nodes.


== Touchy Cells in Tamriel ==
== Touchy Cells in Tamriel ==
Anonymous user