Tuesday, 16 February 2010

Overland maps and more changes

Few things have changed since the last post. Been experimenting somewhat with the basic AI NPC scripts and the overland map. I'll leave the AI for another post, still lots of work and lots of thinking to be done there.

So the Overland Map. Introduced in the SoZ compaign it's a nice (if somewhat slower but more flexible) way to get from A to B and explore your surroundings than the simple World Map you get in the Original Campaign and MotB.

That is of course not to say the World Map doesnt have its uses. To me it seems that the overland map is a good way of exploring a medium-smallish area, i.e. one it would take more than a few "full size" areas to cover sensibly (e.g. High Cliff and it's surroundings or Port Llast and Duskwood). The larger world map would link more distant places together (e.g. Neverwinter to West Harbor).

It is this I have spent the last day or so poking around with trying to get things to behave the way it does in SoZ and then working out how easy it would be to remove the one annoying feature of it, the fixed camera.

First stop for this was the Obsidion produced "tutorial" which gives a few pointers but is, at the end of the day, considerably lacking in the complete set of information.

It's worth noting that most of the things referenced in the guide actually exist within the "Campaigns/Neverwinter Nights 2 Campaign_X2" folder and thus are not immediatly available from within the toolset, although the scripts actually do exist just with different names. Thanks to loudent2's post here, I was able to get the files needed to make the whole overland map work (there's a script missing from his list).

Here then is my guide to making a working overland map SoZ style...

1: Make a .hak containing the following long list of files from the campaign folder...

UI\frame_olmap_B.tga
UI\frame_olmap_BG.tga
UI\frame_olmap_BL.tga
UI\frame_olmap_BR.tga
UI\frame_olmap_button_camp.tga
UI\frame_olmap_button_camp_hover.tga
UI\frame_olmap_button_camp_pressed.tga
UI\frame_olmap_button_clock.tga
UI\frame_olmap_button_nwn.tga
UI\frame_olmap_button_nwn_hover.tga
UI\frame_olmap_button_nwn_pressed.tga
UI\frame_olmap_detail01.tga
UI\frame_olmap_L.tga
UI\frame_olmap_R.tga
UI\frame_olmap_T.tga
UI\frame_olmap_TL.tga
UI\frame_olmap_TR.tga
UI\nx2_ol_frame.xml
UI\nx2_ol_menu.xml
UI\nx2_ol_partybar.xml
UI\playermenu_popup.xml
om_encounter_table.2da
om_terrain_rate.2DA

2: Either include the script "gui_party_actor" or make a copy into your module/campaign (this is the script that lets you change the character shown on the overland map)

3: Create an exterior area. Set it's properties as follows:

OverlandCameraDistance: 25
OverlandCameraPitch: 40
OverlandMap: true
On Client Enter Script: g_ol_client_enter
On Exit Script: ga_olmap_exit
On Heartbeat Script: g_ol_hb

At this point you should have an overland map. Not that it'll do much and you'll find movement a bit awkward.

4: Paint your terrain, textures, place placeables, etc.

5: Paint "Overland Terrain Triggers" over various areas of the map (these will identify the types of area under them - grassland, forest, desert, etc. and effect encounters and movement speeds)

At this point you can move about the map without your character looking like he's treading water.

At this point you can follow instructions in the guide to interact with placables... or you can copy ga_olmap_visit to work as a stand alone script and assign it to the On Use of your placables (you then need to variable in the wp transitions) if you wish to skip the "This is a town, do you want to visit? Yes/No" conversations that can be a little irritating.

That's about as far as I have got so far, At some point I'll need to play with encounter tables and such like but I'm saving that for another time.

1 comment: