Travel Builder is an easy-to-use script set for NWN 1.69. It includes a "quick fix" for custom area transitions in 1.69 which can be used stand-alone.
The full feature list is :
1. When a player travels between areas that are supposed to be miles apart, the journey is described and (in Single Player) the game clock advances.
2.To avoid unnecessary running around in areas that have already been explored, the player can take an instant shortcut from any location within and across areas.
3.Portals and other plot-related area jumps are supported.
4.Travel across water, chasms and other barriers is emulated.
5.When travelling by ship, everything on board moves with the vessel.
6.The system can easily be extended to support ropes, ladders, planar travel or anything else you can imagine.
7.There is an OnTransitionRequest user exit which can be used to intercept existing transitions without changing them.
8.Travel can be controlled by a menu in a quickslot.
9.Conversations involving a choice between options require only one conditional script and one action script.
Travel time depends on many factors, leading to the possibility of "beat the clock" quests across areas.
The system is fully compatible with 1.69 horses, and uses the same approach to movement rate.
Older modules which use any means of travel other than default area transitions will need significant changes to support horses properly. This system provides a plug-in solution which reduces the work considerably.
The approach is flexible - the module author chooses which features to use.
It is supplied in English. Provision has been made for easy translation into other languages.
A basic knowledge of nwscript and the Aurora toolset is assumed.
A demo module is provided, with working examples of overland travel, horses, and every type of ship.
These features can also be seen in my Enigma Island modules.
ACKNOWLEDGEMENTS
Thanks to Deva Winblood for patiently explaining how the 1.69 horse system works, and to Azbest for the function GetEncumbranceLevel().
UNSUPPORTED
The author no longer supports this work. Please feel free to use, amend or republish as you see fit.
It's easy to build the scenario you describe with this tool - in fact I already have something very similar in development for Enigma Island 3. The one thing to be careful about is how time is handled. I suspect PW builders won't want the game clock to change, or enforce a specific time period at sea on the player (which could be boring), but, as you suggest, diversions would at least mean that the player spends some time at sea.
Posted by DeadSomething at 2008-10-25 08:10:20 Voted 10.00 on 10/21/08
sorry, i havent read that yet ^^
my idea was to use (for example on a trip by sea) some areas with only a ship, in which the player has to stay for some time and then advances to another area... also you can make a random encounter by pirates by making the ship advance into another area with an attacking ship... so after all, the player has to spend the whole time on a ship...
Posted by DeadSomething at 2008-10-21 06:42:11 Voted 10.00 on 10/21/08
sounds great so far (made some equal scripts in my own never to be finished module).
one thing to be changed for PW: "When a player travels between areas that are supposed to be miles apart, the journey is described and the game clock advances"
because that also affects the other players ;-)
maybe add some time to be spent on a ship in the open ocean... so the player actually has to stay onboard for the traveling time...
Horse travel between areas can be made faster or slower.
Added the correct speed adjustment for the Barbarian class.
Haste and slow effects (e.g. Boots of Speed) no longer stack for long-distance travel when mounted. This bug fix has to be switched on in a module, to provide backward compatibility.
Journey descriptions are now also available for use in conversation.
Gruftlord has pointed out that Boots of Speed etc don't actually stack in terms of movement speed within area when you're mounted. As it stands, Travel Builder allows them to stack for travel between areas; I might fix that one day.
Posted by Borden Ha'elven at 2008-06-15 11:27:57 Voted 10.00 on 06/15/08
Have another 10 Proleric. Do you mind if I merge this with my World maps? I think they would work well together. _________________________ Stuff I've done.
Jimmy_Buffit : Good point - the SetTime call in bh_travel_inc should be commented out in multiplayer. I'll make it optional in the next release. The travel message is already configurable, so you can omit the time taken.
Posted by Jimmy_Buffit at 2008-05-20 08:57:32 Voted 10.00 on 05/20/08
What a great system:) I love the simulated distances. Thank you so much for this wonderful example.
I do however have one question. Will actually advancing the game clock using the SetTime function be safe to do in multiplayer? It could be commented out if necessary but maybe a built in switch to toggle this function on and off would be better? _________________________ Currently stalking the dungeons of ForkWest.com
Posted by Keltic_Oryantal at 2008-05-18 10:38:11 Voted 10.00 on 05/18/08
Amazing work. You outdid yourself again! _________________________ Cheers,
*K.O*
"Eliminating the need for a PnP game one NWN area at a time."
Posted by Pstemarie at 2008-05-18 02:30:08 Voted 10.00 on 05/18/08
Excellant work, Proleric! _________________________ --
Pstemarie - Project Q Team Artist
Version 0.03 has been refreshed for 1.69 Beta 10 and includes some improvements arising from play testing in larger modules.
There are now two erf files in the zip (core system and example scripts) so that a new release of the core system can be imported without impact on user modifications to the example scripts.
Scripts rebuilt for 1.69 Beta 10 so that latest Bioware code is incorporated.
An area can now contain multiple nodes on more than one network (for example, river crossings in an area that also has several overland shortcuts).
Added functions bhtExportTravelDataBase and bhtImportTravelDataBase to provide support across modules and for Persistent Worlds.
Added an option to bhtTravelOptionMenu and bhtJumpToTravelNode to allow an NPC to travel instead of the PC, so you can send a henchman or other NPC to a known location.
Added a function bhtJumpHorsesToObject to allow the module builder to relocate horses when a PC enters a "no horse" area.
Validation now checks for duplicate node waypoints.
Additional messages have been added to bhTravelFeedback.2da.
Fixed an issue with associates not jumping to the PC within area. This change uses a new function bhtJumpAssociates, which is enabled in the new version of xx_travel_exit.
Fixed an issue that was reporting unknown nodes as unavailable when the party was mounted.
Fixed a loop in the shortcut conversation which occurred if there was no land node in the module start area.
Fixed a typo which occurred when the travel distance was 1 unit.
Fixed a message about someone slowing you down when the distance was zero.
Horse checks optimised for better performance.
Module heartbeat script is now x3_mod_def_hb.
Example script bhh_mod_def_load renamed xx_mod_def_load for consistency.
Correction to Guide - items can be left in the ship's cabin using their radial menu. There is a known issue with drag-from-inventory in this location, which Bioware probably won't fix.
Correction to Guide - the ship in the Mines & Caverns tileset is supported.
@ luckybastardo : I sympathise, but the main driving force behind Travel Builder is to simplify the conversion of modules to 1.69. To do that, it has to use the new horse functions in 1.69 beta - it just won't work in 1.68. I'm hoping Bioware will release 1.69 as final for all versions and languages fairly soon, so you will be able to use it then.
My playable modules are still in 1.68, and will remain so until 1.69 is final.
please upload modules that dont requiered Beta update. Im a non english NWN owner, and we cant run yours module, i think you build it with "The 1.69.8108 beta 9"
One issue I'm currently working on for my own purposes is that the Bioware functions in the "JumpTo" family are now potentially unsafe if the caller might have horses. Travel Builder already provides the facility to jump to a node, but that isn't always convenient.
I have a prototype which manages the delicate timing of dismounting / releasing horses before jumping. The suggested format is
The return value is the delay now inherent in the jump. The function would ensure that any horses are left behind in an unassigned state before jumping oCreature to the location of the unique object with the tag sObjectTag. The actual jump would be an action, not immediate.
If anyone would find it useful to have a public function of this sort in Travel Builder, let me know - the format is open to discussion.
Posted by Gonzo_og at 2008-03-26 09:00:52 Voted 10.00 on 03/25/08
Thanks very much. I'm really excited for the future of NWN1, especially with people like you still improving on it. _________________________ stuff
@ Gonzo_og - I assume you mean a series of modules with a fairly common geography? I just did this for the Enigma Island series Parts 1-3 (part 3 isn't published yet). My approach was
1. Define the network once in a shared hakpak.
2. Write some common scripts for OnClientEnter, area OnEnter, "OnTransitionRequest" and henchman dialog (I needed to do this anyway, to support 1.69 horses). Import to all three modules.
3. Add module-specific exits to the above scripts (this required very little change to the old code. Effectively, I'm using the new scripts as a wrapper that handles Travel Builder and horse integrity).
4. Since the waypoints aren't quite identical in my three modules, I ran them, allowing Travel Builder validation to fail. The "missing waypoint" error messages show up in the log.
5. I made some new waypoints in a dummy area in each module, so that I could cut-and-paste the missing tags from the log. This satisfies the validation routine and causes no problems, because the player will never get to the area in question.
6. Deleted a shedload of old scripts that Travel Builder makes redundant.
I didn't need to communicate the player's current network position across modules (each has a new start position). If you need to do that, I could make those variables "public", so that you can store them between modules.
Hope this helps.
Posted by Gonzo_og at 2008-03-25 06:12:04 Voted 10.00 on 03/25/08
Any suggestions for implementing this across modules? _________________________ stuff