Translations for our friends around the world.

Author Topic: Neverwinter Nights: Enhanced Edition  (Read 9466 times)

0 Members and 1 Guest are viewing this topic.

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #30 on: January 19, 2020, 01:48:46 AM »
Neverwinter Nights: Enhanced Edition Development Build 8193.6
Mon, 13 January 2020

Happy New Year, friends!

We’re kicking off 2020 with a brand new development patch for you to play with!


Development Patch 8193.6 focuses on creation for both single player and multiplayer. This dev patch is best suited for our content creator community, as it requires technical knowledge of our toolsets (and a willingness to endure a few issues). We hope you have some fun breaking these features— fair warning: we’re expecting there to be some outstanding bugs in this build.

This patch is network-compatible with all other 8193 releases; however, new features will not work when the patch revision differs (and characters may fail to pass ELC).
Check out the full patch notes below!

All the best,
- Beamdog NWNEE Team


Customise weapons-related feats in baseitems.2da

Weapons-related feats (Focus, Epic Focus, Spec, Epic Spec, Improved Crit, Overwhelming Crit, Devastating Crit, Weapon of Choice) can now be customised on a per-baseitem case.

Please refer to baseitems.2da for the new columns: WeaponFocusFeat EpicWeaponFocusFeat WeaponSpecializationFeat EpicWeaponSpecializationFeat WeaponImprovedCriticalFeat EpicWeaponOverwhelmingCriticalFeat EpicWeaponDevastatingCriticalFeat WeaponOfChoiceFeat


Custom weapon visual effects

Weapons can now have custom visual effects (in addition to the stock fire, ice, electricity, etc.)

Please refer to the new file iprp_visualfx.2da for details.


Custom spellcaster classes

We've added (somewhat partial) support for custom spellcaster classes by "unhardcoding" a lot of the builtin constants and references.

Please refer to classes.2da for the new columns: MemorizesSpells SpellbookRestricted PickDomains PickSchool LearnScroll Arcane ASF SpellcastingAbil SpellTableColumn CLMultiplier MinCastingLevel MinAssociateLevel CanCastSpontaneously

Note that not all combinations are valid. We recommend cloning one of the existing caster classes and then start customising from there. When adding spellcasting to new classes, remember to also update existing columns.

There is also a new ruleset entry: COMPANION_LEVELS_STACK, defaulting to 0.


Level of Detail

You can now specify LODs via a new file type ".lod". When the game loads the model mymodel.mdl, it will look up mymodel.lod. Inside that file, add the following lines:

Code: [Select]
mymodel_0
40 mymodel_1
80.5 mymodel_2


The game supports LOD files with up to three levels, as shown above. You may omit the last entry. The first line is the high-resolution model; the other two are meant to be lower-resolution model files, that will be dynamically swapped out as the camera reaches the given distance.

Please note that LODs are highly dependent on the screen resolution of the client. The actual mechanisms here need to still be figured out; but for now, we'd suggest choosing LOD distances as if the user had a 1080p screen. To support other resolutions, there is a configuration slider in the debug settings (Ctrl-Shift-F12, select "Config", key: "graphics.lod.scale-factor") that users can influence LOD distances with.


Animation Slots

The game now supports 50 more custom animation slots (LOOPING_CUSTOM21 -> 70).


Script call to swap out textures on the fly

A new script call was added:

Code: [Select]
// Makes oPC load texture sNewName instead of sOldName.
// If oPC is OBJECT_INVALID, it will apply the override to all active players
// Setting sNewName to "" will clear the override and revert to original.
void SetTextureOverride(string sOldName, string sNewName = "", object oPC = OBJECT_INVALID);

Changes made through this call will appear immediately on clients.


NWSync

When downloading something via NWSync, disk writes now happen asynchronously while more content is downloaded. This should minimise occurrences of "Waiting On Storage". If this is giving you grief, you can turn it off in settings via the key "nwsync.transfer.flush.async".

The NWSync Downloader UI was swapped out with a new version, which is now rendered in Nuklear. It has a fancy graph and a pause button.

Finally, the Storage Manager (Options -> NWSync) now has two tabs: Servers, and Modules. Server manifests (i.e. when joining a PW that offers files) show up in the Server tab.

The Modules tab will show all singleplayer/offline modules you have downloaded via NWSync. To facilitate this, the Storage Manager UI now can download offline modules for you; however, by default, no remote repositories offering this are added to your game.

To add a remote repository, add the following lines to your settings.tml (right at the top is fine, the game will sort them in properly on next launch):

Code: [Select]
[[nwsync.downloader.repositories]]
name = "NWVault"
url = "http://sync.neverwintervault.org/"

To actually generate a repository of your own that can offer singleplayer modules for download, you need to generate NWSync manifests that have module contents in them (nwsync_write --with-module --group-id N ...). Finally, add all manifests into a big json array in modules.json in the repository root (the nwsync_write tooling will update soon to do this for you). See the sample repository if it is unclear.

Modules downloaded this way will show up under "Other Modules" when clicking Singleplayer -> New Game.


Texture Binding

There is a new, experimental, texture caching system in place that will speed up GL texture binding, depending on your hardware (especially if you are CPU-bound). It is enabled by default, but you can turn it off via the config flag graphics.experimental.aggressive-texture-caching, if it turns out to have issues.

We have seen - depending on scene complexity and the amount of texture maps in use - dramatic performance improvements. We'd appreciate feedback on this.


Shader Issues

We fixed a shader issue that would result in illumination appearing on content that was intended to be black (e.g. the tile borders in the “Dungeon” tileset).


Texture Issues

We fixed mipmaps not being generated for non-compressed textures.


ResMan

ResMan can now use more than 256MB of memory for caching. There is a configuration option to specify the percentage of detected physical memory that ResMan can use. Additionally, new defaults in place will avoid I/O churn, resulting in vastly improved performance in complex scenes.


ResMan Priorities

The priorities of userpatch, modules, haks, and override have been restored.


Toolset

•   Toolset now allows selection of heads from custom slots 50-99.
•   The up and down arrow keys for Adjust Position now progress in perfect sequence.
•   We fixed a bug where double-clicking on an area entry could cause parts of the toolbar to grey out.
•   We fixed a truncation issue when using search & replace in the script editor.
•   You can now add a NAME CExoString field to your custom tileset palettes, instead of having to put a STRREF.
•   Object descriptions over 2000 characters long are no longer truncated.
•   The toolset no longer crashes when moving the start location between areas open in multiple tabs.
•   A group of raised objects now retains their z-level when moved.

Miscellanea

•   [Windows] We fixed large strings, such as chat logs, disappearing if they exceed 1024 characters.
•   We addressed an issue where models/resources would leak over when hopping servers, sometimes resulting in a crash.
•   We updated the crash reporter text and URL.

Have a great start into 2020!


I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #31 on: February 28, 2020, 12:17:55 AM »
Neverwinter Nights: Enhanced Edition Development Build 8193.7
Thu, 27 February 2020




Hello, friends.

This development patch brings NWN:EE to version 8193.7. You can crossplay on all 8193 servers, as well as with friends on the same major version!


We appreciate any and all testing on this!

Tileset changes

•   Collision (250+) Added necessary spacing for "drive-through" transitions, and fixed faulty walkmeshes
•   Lighting (150+) Fixed lights with improper flags set, for performance.
•   Emitters & Animations (150+) Tiles with bad settings on emitters, and improper animation sequences, were fixed
•   All doors in game (192) checked for animations, transitions, collision. Transition meshes changed to reflect door art.
•   Over 850 optimization and beauty fixes for Castle Exterior, Rural set imported from the Tyrants of the Moonsea premium module
•   Major pathfinding fixes for Castle Exterior, Rural
•   A handful of new doors to fit the tile art better
•   A new "Doorcap, Interior" Feature Tile for TNI02 and TNI01, to allow drive-through transitions for doors placed on very edges of areas
•   Doors with improper orientation arrows were fixed where discovered, as well as negative values in the SET files


Game Features

•   The data build has been updated, containing the above-mentioned tileset fixes (ovr/ has been cleaned out into the keyfiles as well, in case you were wondering).
•   ruleset.2da now exposes the following chargen-related constants: CHARGEN_ENABLED_PHENOTYPES, CHARGEN_ABILITY_COST_INCREMENT2, CHARGEN_ABILITY_COST_INCREMENT3, CHARGEN_ABILITY_COST_INCREMENT4, CHARGEN_BASE_ABILITY_MIN, CHARGEN_BASE_ABILITY_MIN_PRIMARY, CHARGEN_BASE_ABILITY_MAX, CHARGEN_ABILITY_NEUTRAL_VALUE, CHARGEN_ABILITY_MODIFIER_INCREMENT, CHARGEN_SKILL_MAX_LEVEL_1_BONUS
•   Chargen combinations with any domain, school, spell, and companion should now work fine.
•   Radial subspell count has been upped to 8 (from 5).
•   Chargen now allows customisation of class, race, gender, and alignment starting clothes (chargenclothes.2da).


Perf

This patch brings in a series of performance improvements into the game, that will see the average FPS go up by at least 30% - and in many cases, even more - in many scenes compared to the last stable release.

•   Perf optimisation: Timer-related updates with many AI objects.
•   Perf optimisation: The config system is now smarter in tracking updates.
•   Perf optimisation: Shadows are now much cheaper on the cpu.
•   Perf optimisation: Texture units are now managed more efficiently.
•   Perf optimisation: Transformation matrix updates have been optimised.
•   Perf optimisation: Buffer uploads to the GPU have been made smarter.
•   Perf optimisation: Texture caching has been optimised.
•   A new renderhint "NormalTangents" was added, that omits checking for specular maps.
•   Perf optimisation: nwsync setup and updates now avoid excess memcpys and should be much faster.


Game Fixes

•   We fixed cls_stat_ tables erroneously being read off by one when validating characters.
•   [Windows] We fixed fullscreen resolution not being detected on first start.
•   We fixed Creature and Heartbeat logging settings being conflated.
•   We fixed GetCasterLevel() on AOEs/SLAs erroneously invalid values.
•   We fixed Linux Steam CD key provisioning.
•   Fixed tile path nodes not showing up.
•   We fixed ground triggers disappearing or losing tint.
•   Lighting oddities in GUI scenes with some advanced shader mechanisms have been addressed.
•   WCOC no longer crashes the game.
•   The GetDurationRemaining-like script calls now work properly when the duration is longer than one day.
•   The game now defaults to fullscreen on all platforms except MacOS.
•   [Mac] Screen Edge Camera Turning when using the MacOS builtin maximise works again.
•   CopyObject() with a new tag specified no longer erroneously adds the object to the old tag lookup.
•   The player name is now properly sent to the server even if the Remember checkbox is not checked.
•   racialtypes.2da no longer divides by zero when the FeatPerLevel columns are 0.
•   The lightning flash model was resized to full even large screens.
•   pregen.2da now contains all builtin bics so they don't litter the character selection anymore.
•   The parameter +password on the command line was fixed.
•   Human female PLT textures now fall back to male if missing.
•   Intro movies now again play correctly.
•   Windows server now shows the patch revision (.7).
•   The NWSync Downloader now shows a more verbose error if it is unavailable.
•   A crash in chargen when adding more lines to skills.2da has been fixed.
•   A rare nullptr dereference when adding unknown party members has been fixed.
•   ActivatePortal() now properly uses relays if needed.
•   Learn Scroll no longer hangs the server.
•   ELC for Sorcerer and Bards with too many spells has been fixed.
•   Class IDs > 15 now get spells in the radial.
•   Support for >17 bones.
•   When reading configuration variables, 't' and 'true' are now valid trueish.
•   Custom weapon visual effects are no longer off by one in the 2da.
•   When reading configuration environment override variables, . and - are now replaced with _.
•   Custom tokens are no longer erroneously cleared when reloading a module.


Toolset

•   The script editor no longer freezes when trying to compile **/**.
•   Shield equipping logic in the creature editor was fixed.



I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #32 on: March 11, 2020, 12:18:18 AM »
Neverwinter Nights: Enhanced Edition Development Build 8193.8
Tue, 10 March 2020

Greetings!

Patch 8193.8 on the Development branch fixes all known regressions introduced by .7; and brings in some neat, new features for you to play with.

Please help us test it and report any bugs you find!


Improvements

•   Spells in the spellbook are now sorted (alphabetically). You can turn this off in settings.tml: ui.spellbook.sort-spells
•   New ruleset.2da toggle: ALLOW_CUSTOM_PORTRAITS (in chargen)
•   Pathfinding when clicking near objects was improved:
 



Fixes

•   "No preparations left" spell cast issues were addressed.
•   Fixed casting spells from some cleric domains.
•   Fixed assigned spells in the UI losing metamagic or spontaneous flags.
•   We fixed players losing the party or party members.
•   Players can now, once again, finish chargen with customised packages.
•   We fixed non-english languages missing some voices and sound effects.


New Scripting Functions

GetSpecialization(), GetDomain()

Code: [Select]
int DOMAIN_AIR = 0;
int DOMAIN_ANIMAL = 1;
int DOMAIN_DEATH = 3;
int DOMAIN_DESTRUCTION = 4;
int DOMAIN_EARTH = 5;
int DOMAIN_EVIL = 6;
int DOMAIN_FIRE = 7;
int DOMAIN_GOOD = 8;
int DOMAIN_HEALING = 9;
int DOMAIN_KNOWLEDGE = 10;
int DOMAIN_MAGIC = 13;
int DOMAIN_PLANT = 14;
int DOMAIN_PROTECTION = 15;
int DOMAIN_STRENGTH = 16;
int DOMAIN_SUN = 17;
int DOMAIN_TRAVEL = 18;
int DOMAIN_TRICKERY = 19;
int DOMAIN_WAR = 20;
int DOMAIN_WATER = 21;

// Returns oCreature's spell school specialization in nClass (SPELL_SCHOOL_* constants)
// Unless custom content is used, only Wizards have spell schools
// Returns -1 on error
int GetSpecialization(object oCreature, int nClass = CLASS_TYPE_WIZARD);

// Returns oCreature's domain in nClass (DOMAIN_* constants)
// nDomainIndex - 1 or 2
// Unless custom content is used, only Clerics have domains
// Returns -1 on error
int GetDomain(object oCreature, int nDomainIndex = 1, int nClass = CLASS_TYPE_CLERIC);


PostString()

Code: [Select]
int SCREEN_ANCHOR_TOP_LEFT = 0;
int SCREEN_ANCHOR_TOP_RIGHT = 1;
int SCREEN_ANCHOR_BOTTOM_LEFT = 2;
int SCREEN_ANCHOR_BOTTOM_RIGHT = 3;
int SCREEN_ANCHOR_CENTER = 4;

// Displays sMsg on oPC's screen.
// The message is displayed on top of whatever is on the screen, including UI elements
// nX, nY - coordinates of the first character to be displayed. The value is in terms
// of character 'slot' relative to the nAnchor anchor point.
// If the number is negative, it is applied from the bottom/right.
// nAnchor - SCREEN_ANCHOR_* constant
// fLife - Duration in seconds until the string disappears.
// nRGBA, nRGBA2 - Colors of the string in 0xRRGGBBAA format. String starts at nRGBA,
// but as it nears end of life, it will slowly blend into nRGBA2.
// nID - Optional ID of a string. If not 0, subsequent calls to PostString will
// remove the old string with the same ID, even if it's lifetime has not elapsed.
// Only positive values are allowed.
// sFont - If specified, use this custom font instead of default console font.
void PostString(object oPC, string sMsg, int nX = 0, int nY = 0, int nAnchor = SCREEN_ANCHOR_TOP_LEFT, float fLife = 10.0f, int nRGBA = 2147418367, int nRGBA2 = 2147418367, int nID = 0, string sFont="");


Fixes to Wyvern: Crown of Cormyr

•   The module now includes all script sources
•   Fixed "horse hat", and "cannot mount, your tail is in the way" issues
•   Lucinda's Warhorse sometimes vanished upon creation, in Thunderstone
•   Empty joust journal entries now read properly
•   Tile repairs (Castle Barrow, end game bridge, a couple odds & ends)
•   Soundset.2da conflicts with Heros of Neverwinter fixed
•   Realigned all horse and snake blue prints to use proper soundsets
•   Removed duplicate/conflicting SET, ITP, 2DA and TGA files
•   Lifted a Z-fighting prop in Jousting Grounds
•   Replaced missing doors in Polter's Fort (Lower/Upper)
•   Fixed broken transition between Wyvernwater Castle Stables and Wyvernwater Castle


Fixes to Pirates Of The Sword Coast

•   The module now includes all script sources
•   Eliminated content from haks duplicated in XP3.bif, merged 2DA's where possible
•   Performance fixes for PotSC-Exclusive tiles (TCN01)
•   Fixed a few cases where henchmen could go hostile in cutscenes and break the game


Tileset changes

•   Off-height and blocking walkmeshes fixed for bridges in Sea Caverns and Steamworks sets
•   Repaired 2 TNO01 tiles for SQRT Error
•   Repaired the 2x2 smithy in TNI01, and made the DoorCap, interior a unique tile
•   Fixed a shadow leak in the hobgoblin head model (seen in WCoC intro cutscene)
•   Performance fixes for TCN01 (stock assets)
•   Fixed a blocky water VFX on a TCN01 Temple's fountain (TCN01_W03_01)
•   Fixed blocky smoke on a couple forest campfires (TTF01_T13_01 and TTF01_S16_01)
•   Repaired a few reported broken walkmeshes, in various sets



I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #33 on: March 19, 2020, 10:32:32 AM »
Dark Dreams of Furiae - a new module for NWN:EE
Wed, 18 March 2020




Looking for a new adventure?


Developers at & Silverstring Media & Phantom Compass just announced a new module for Neverwinter Nights: Enhanced Edition.

The Dark Dreams of Furiae DLC is coming soon to Steam, GOG and the Beamdog Store.

https://store.steampowered.com/app/1247750/Neverwinter_Nights_Enhanced_Edition_Dark_Dreams_of_Furiae/

Planned Release Date: 24 March

Features

•   10 hours of brand new gameplay for Neverwinter Nights: Enhanced Edition
•   Solo and co-op play
•   Original Music Score
•   Takes characters from level 5 to 8
•   Time is of the essence: day/night cycle marches on; your choices bring new events
•   Daily news sheet adapts to your decisions and gives adventure clues
•   Based on the Planescape D&D campaign setting
•   Events coincide with official D&D tabletop campaign, Baldur's Gate: Descent into Avernus




STORY

Set in the planar city of Furiae on the edge of hell, Dark Dreams of Furiae coincides directly with the official Dungeons & Dragons tabletop campaign, Baldur's Gate: Descent into Avernus!

🔥Dark Dreams of Furiae: A City on the Edge of Hell🔥

In the fallen city of Furiae, ruled by devils and despots, a quiet war wages for the hearts and minds of the people. Into this chaos, a new arcane substance is smuggled: worldwine. Worldwine is deadly to devils, and turns mortals into dream-addled fanatics.

Fight to save a damned city in this planar mystery adventure…


I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #34 on: March 25, 2020, 12:43:10 PM »
Launch Day: Dark Dreams of Furiae—a new module for NWN:EE
Tue, 24 March 2020



A brand new module for Neverwinter Nights: Enhanced Edition launches today!

Developers at Silverstring Media & Phantom Compass just launched a brand new module for Neverwinter Nights: Enhanced Edition.

Dark Dreams of Furiae is a mystery adventure on the edge of hell! 🔥
Get it now > $4.99 USD

Features

•   10 hours of brand new gameplay for Neverwinter Nights: Enhanced Edition
•   Solo and co-play
•   Original Music Score
•   Takes characters from level 5 to 8
•   Time is of the essence: day/night cycle marches on; your choices bring new events
•   Daily news sheet adapts to your decisions and gives adventure clues
•   Based on the Planescape D&D campaign setting
•   Events coincide with official D&D tabletop campaign, Baldur's Gate: Descent into Avernus

Story

Set in the planar city of Furiae on the edge of hell, Dark Dreams of Furiae coincides directly with the official Dungeons & Dragons tabletop campaign, Baldur's Gate: Descent Into Avernus!


 
🔥Dark Dreams of Furiae:
A City on the Edge of Hell🔥

In the fallen city of Furiae, ruled by devils and despots, a quiet war wages for the hearts and minds of the people. Into this chaos, a new arcane substance is smuggled: worldwine. Worldwine is deadly to devils, and turns mortals into dream-addled fanatics. Fight to save a damned city in this planar mystery adventure…


I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #35 on: April 10, 2020, 12:26:32 AM »
Development Build 8193.10
Thu, 9 April 2020




Pathfinding

Pathfinding performance has been improved drastically; especially on big areas with a lot of static placeables (up to 90% reduction in CPU time spent on pathing).

A new configuration toggle has been added: server.experimental.enhanced-pathfinding; it defaults to on. With this option, combat AI will be much smarter in pathing to their target and thus impact the module experience/difficulty somewhat. We appreciate your feedback on this change. If you need this OFF on your server for whatever reason, just turn this flag off in settings.tml.

Features

•   Script errors are now logged to the server log.
•   SSAO performance and accuracy has been improved.
•   Dynamic contrast performance and accuracy has been improved.
•   Depth of field performance and accuracy has been improved. A new configuration value can be used to set the amount in addition to turning it on and off.
•   Sharpen performance and accuracy has been improved.
•   Visual effects, emitters, lens flares are now subject to post processing.
•   CLI nwserver now shows proper help for NWSync-related parameters.
•   Framebuffer: View and projection matrices are now accessible properly.
•   Framebuffer: Alpha testing on FB effect pass was disabled; fixes background colour appearing erroneously on low alpha.
•   Framebuffer: Depth testing was disabled on FB effect pass; fixes background colour appearing erroneously for objects close to screen pane.
•   Framebuffer: All lights (static and dynamic) are now enabled for FB effect passes; fixes them not applying to tinted emitters.
•   Many more .ini options have been migrated to .tml.


Fixes

•   Savegame support for offline NWSync modules has been fixed (by shuffling CURRENTGAME resman priority for NWSync only). Effectively, offline NWSync modules now have a lower HAK priority. HAK priority for non-NWSync games is the same as before.
•   VM: SetEventScript properly returns TRUE on success. #9
•   VM: SetEventScript no longer crashes when passing in invalid constants.
•   VM: GetCampaignVector now properly returns the Z value of stored vectors. #10
•   ActivatePortal no longer erroneously shows character selection if a character is sent along. #2
•   Chargen now allows lowering stats back under 11 for non-caster primaries. #3
•   Texture caching was improved.
•   Script/effect timers no longer overflow when the duration is more than a day.
•   PostString() strings are no longer hidden when the radial menu opens. #11
•   settings.tml is no longer erroneously half-truncated when the game crashes while saving out the file.
•   BootPC() no longer crashes the server if called twice on the same player #6
•   Fixed textures getting erroneously evicted between module loads #7
•   VM: We fixed a memleak in AssignCommand, DelayCommand, ActionDoCommand
•   VM: We fixed a memleak when removing effects from objects
•   NWSync: We addressed an issue where sqlite3 would fail to open NWSync databases on non-ANSI path names


Toolset

•   Access violation when compiling scripts with nested structs has been fixed.


New Script Commands

Code: [Select]
// Returns the build number of oPlayer (i.e. 8193).
// Returns 0 if the given object isn't a player or did not advertise their build info.
int GetPlayerBuildVersionMajor(object oPlayer);

// Returns the patch revision of oPlayer (i.e. 8).
// Returns 0 if the given object isn't a player or did not advertise their build info.
int GetPlayerBuildVersionMinor(object oPlayer);


Tileset Changes

•   Doors on area edges have been fixed. #13
•   TTF01_T13_01, TTF01_S13_01: Fixed torches to work properly w/ Source Lights & w/o glowing meshes, and a campfire emitter that never shut off
•   TTF01_P10_01: Restored missing waterfall animation, with an animloop to control it
•   TDC01_Q02_01: Restored missing animated meshes from Bioware Source files, and merged them back into the tile
•   TWC03_C43_02 (SET File): Set the X-position to 0.0 instead of a negative scientific number
•   TNO01_M53_(11-14): Repaired a bad texture assignment, and closed a seam running along two tile edges


Premium Modules

•   Kingmaker: Missing assets from 1.0 have been restored, including script sources
•   Shadow Guard: Script sources are now included
•   Witches Wake: Script sources are now included
•   Darkness over Daggerford, Tyrants of the Moonsea: New door tiles to replace the Placeable Doors; assorted tile fixes to enable drive-through transitions


I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #36 on: April 25, 2020, 12:16:35 AM »
Development Build 8193.11
Fri, 24 April 2020




Fixes

•   Lighting: Light priority selection was improved. Distance/far dynamic lights should no longer override closer - more important - lights. (This can be turned off with the option graphics.experimental.enhanced-light-managing)
•   Config: A corner case where server favourites and history was not saved was fixed.
•   VM: GetSpellSaveDC now uses the SpellcastingAbility column, instead of the PrimaryMod column. #27
•   VM: A pathfinding issue in RandomWalk() was fixed, where calling the function sometimes did nothing.
•   VM: PostString() strings are now rendered in sort order.
•   A heap buffer read overflow in pathfinding was addressed, that could previously have resulted in some jerky movement when blocked by a door or placeable.
•   SSAO fbo: We exorcised some spooky ghosting that manifested when panning the camera.
•   [NVIDIA] Toolset: It should no longer be necessary to force threaded optimisation off manually.
•   Toolset: Music and Ambient Sounds can now be loaded from ResMan (haks) if listed in the 2da.
•   [Linux] Server command line help now includes nwsync-related args.
•   Server: We optimised gff validation performance. Even very large character files with lots of local vars should no longer hang needlessly.
•   Fixed an issue that were causing custom dynamic race models to always use the human texture variant. #31

Content Changes

•   Bad campfire animation on TTF01_T13_01
•   Fixed stringy shadows on Driftwoods 1&2, Market Stall 01, Dragon Statue, and Castle Rural tiles TNO01_A06_01, TNO01_B51_02, & TNO01_C01_02

Premium: Darkness over Daggerford

•   Replaced a missing door in the Stronghold
•   Fixed stringy shadows on the Kocharan model

Premium: Tyrants of the Moonsea

•   Fixed a bad campfire animation on TTF01_T13_01 (Facelift version)
•   Fixed door with bad orientation in TCM02, as well as Melvaunt Shipyards (Entrance to Resting Place of the Whip)


I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #37 on: May 07, 2020, 12:25:41 AM »
Development Patch 8193.12
Wed, 6 May 2020




Fixes

•   Changed the movie render scale to fit-to-window.
•   Fixed renderaabb not showing up properly on all tiles. #43
•   Fixed skylight beams (forest sunbeams, etc.) not rendering properly in all cases.
•   VM: Fix script commands not properly accessing area UUIDs. #41
•   CampaignDB: Fix RetrieveCampaignVector returning zeroed out vectors. #44
•   Fixed a heap overflow read when spawning a encounter list.
•   Linear filtering on post processing passes has been disabled. This takes care of yet more (subtle) ghosting.
•   [Windows] OpenAL: Fix crash when no sound devices are available.
•   [Windows] OpenAL: DLL was replaced with OpenAL Soft, fixing launch crashes when OpenAL was not installed.
•   [Windows] OpenAL: Address issues with sounds disappearing during long play sessions.
•   [Windows] OpenAL: Fix issues with sounds disappearing when too many sounds are playing at the same time.
•   VM: DestroyArea() now behaves the same as DestroyObject(): Instead of destroying the area immediately, it schedules it for removal immediately after script exit. This fixes accessing freed memory when destroying an area from an area event.
•   VM: GetCasterLevel() now returns 0 for AOEs instead of crashing. #34
•   classes.2da: fix not using SpellcastingAbil for non-memorising casters. #39
•   [Windows] nwhak.exe: Add support for ktx, ttf, sql, tml, sq3, lod file types.
•   [Windows] We fixed settings.tml sometimes not being written out properly.

Toolset

•   Removed the warning dialogue that shows when opening a module with haks.
•   Added a setting to always open module directories.
•   The outdated and unused registry read + warning UI has been purged.
•   Conversation editor opening time has been optimised.
•   Modules are now sorted alphabetically and the last-opened module is selected by default.
•   Modern UI skinning has been enabled.
•   The tabbed UI is now on by default.
•   Fixed a crash when pasting objects from a closed area.
•   Fixed a bug in placeable properties UI where it would open the wrong dialogue file.

Premium

•   DoD - Fixed a crash with the Kocharan model (only when compiled and spawned via script)
•   Tyrants - Rearranged placeables that shifted and blocked a doorway in Zhentil Keep (when the door was opened).

Art

•   Driftwood 2, TNO01_A06_01: Fixed Shadows (again)
•   Alchemist Apparatus 1 & 2: Shadow, UV, Mesh & Walkmesh fixes
•   TN_SDOOR_02 Fixed a broken/missing animation (#26)
•   TN_SDOOR_19 Reclassified as Type=Door (#29)
•   TNO_V00_09 Fixed ground texture (now set back to Grass) (#25)
•   TNO01_Chain01.DDS Cleaned up the alpha channel and texture shape, resized to 2x (512 x 256) (#23)
•   TNO01_B70_01 Repaired misplaced geometry (#22)
•   TCN01_J17_01 Repaired misplaced geometry, fixed animation to use an animloop (and allow shutdown)
•   TTZ01_EDGE.2da Added an entry to accomodate elevated stream with grass (used to show up blank-edged)

Data

•   NW_IT_ARMHE007.uti Removed the unnecessary 50 charges for Thieves' Hood (#24)



I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #38 on: May 14, 2020, 11:35:32 AM »
Stable Build 8193.13
Wed, May 13, 2020




Hello, everyone!

Today, we are shipping patch 8193.13 to the stable branch of the game.

This patch is crossplay-compatible with all 8193 game releases, but we recommend upgrading to the newest version to gain access to the latest features!

We'd like to thank you, our faithful and patient community, for your help in providing feedback, reporting bugs, and testing our development branch in between!

Fixes

•   The .lod file parser now parses files not ending in a newline correctly.

Art

•   TNO01_V02_03: Fixed splash VFX on waterfall (not on its own animloop, waterfall animation still intermittent).
•   TCN01_E09_01: Bad orientation on meshes caused shifting and blank spots.
•   TNO01.SET: Pathfinding, Orientation & Visibility Fixes.
•   TN_GDOOR_08: Reverted to original art, addresses non-clickable area transitions at edge of map.

Toolset

•   Creature Wizard: remove stray "-1" text #50
•   Area tile light color picker no longer shows blank colors #49
•   Inventory window now renders icon backgrounds properly #47

Premium

•   Tyrants of the Moonsea: Fixed 3 shifted cliff sets (placeables) in Elmwood


In addition, this patch includes the previous development builds .10, .11 and .12, summarised here:

Pathfinding

Pathfinding performance has been improved drastically; especially on big areas with a lot of static placeables (up to 90% reduction in CPU time spent on pathing).

A new configuration toggle has been added: server.experimental.enhanced-pathfinding; it defaults to on. With this option, combat AI will be much smarter in pathing to their target and thus impact the module experience/difficulty somewhat. We appreciate your feedback on this change. If you need this OFF on your server for whatever reason, just turn this flag off in settings.tml.

Features

•   Script errors are now logged to the server log.
•   SSAO performance and accuracy has been improved.
•   Dynamic contrast performance and accuracy has been improved.
•   Depth of field performance and accuracy has been improved. A new configuration value can be used to set the amount in addition to turning it on and off.
•   Sharpen performance and accuracy has been improved.
•   Visual effects, emitters, lens flares are now subject to post processing.
•   CLI nwserver now shows proper help for NWSync-related parameters.
•   Framebuffer: View and projection matrices are now accessible properly.
•   Framebuffer: Alpha testing on FB effect pass was disabled; fixes background colour appearing erroneously on low alpha.
•   Framebuffer: Depth testing was disabled on FB effect pass; fixes background colour appearing erroneously for objects close to screen pane.
•   Framebuffer: All lights (static and dynamic) are now enabled for FB effect passes; fixes them not applying to tinted emitters.
•   Many more .ini options have been migrated to .tml.

Fixes

•   Savegame support for offline NWSync modules has been fixed (by shuffling CURRENTGAME resman priority for NWSync only). Effectively, offline NWSync modules now have a lower HAK priority. HAK priority for non-NWSync games is the same as before.
•   VM: SetEventScript properly returns TRUE on success. #9
•   VM: SetEventScript no longer crashes when passing in invalid constants.
•   VM: GetCampaignVector now properly returns the Z value of stored vectors. #10
•   ActivatePortal no longer erroneously shows character selection if a character is sent along. #2
•   Chargen now allows lowering stats back under 11 for non-caster primaries. #3
•   Texture caching was improved.
•   Script/effect timers no longer overflow when the duration is more than a day.
•   PostString() strings are no longer hidden when the radial menu opens. #11
•   settings.tml is no longer erroneously half-truncated when the game crashes while saving out the file.
•   BootPC() no longer crashes the server if called twice on the same player #6
•   Fixed textures getting erroneously evicted between module loads #7
•   VM: We fixed a memleak in AssignCommand, DelayCommand, ActionDoCommand
•   VM: We fixed a memleak when removing effects from objects
•   NWSync: We addressed an issue where sqlite3 would fail to open NWSync databases on non-ANSI path names
•   Lighting: Light priority selection was improved. Distance/far dynamic lights should no longer override closer - more important - lights. (This can be turned off with the option graphics.experimental.enhanced-light-managing)
•   Config: A corner case where server favourites and history was not saved was fixed.
•   VM: GetSpellSaveDC now uses the SpellcastingAbility column, instead of the PrimaryMod column. #27
•   VM: A pathfinding issue in RandomWalk() was fixed, where calling the function sometimes did nothing.
•   VM: PostString() strings are now rendered in sort order.
•   A heap buffer read overflow in pathfinding was addressed, that could previously have resulted in some jerky movement when blocked by a door or placeable.
•   SSAO fbo: We exorcised some spooky ghosting that manifested when panning the camera.
•   [NVIDIA] Toolset: It should no longer be necessary to force threaded optimisation off manually.
•   Toolset: Music and Ambient Sounds can now be loaded from ResMan (haks) if listed in the 2da.
•   [Linux] Server command line help now includes nwsync-related args.
•   Server: We optimised gff validation performance. Even very large character files with lots of local vars should no longer hang needlessly.
•   Fixed an issue that were causing custom dynamic race models to always use the human texture variant. #31
•   Changed the movie render scale to fit-to-window.
•   Fixed renderaabb not showing up properly on all tiles. #43
•   Fixed skylight beams (forest sunbeams, etc.) not rendering properly in all cases.
•   VM: Fix script commands not properly accessing area UUIDs. #41
•   CampaignDB: Fix RetrieveCampaignVector returning zeroed out vectors. #44
•   Fixed a heap overflow read when spawning a encounter list.
•   Linear filtering on post processing passes has been disabled. This takes care of yet more (subtle) ghosting.
•   [Windows] OpenAL: Fix crash when no sound devices are available.
•   [Windows] OpenAL: DLL was replaced with OpenAL Soft, fixing launch crashes when OpenAL was not installed.
•   [Windows] OpenAL: Address issues with sounds disappearing during long play sessions.
•   [Windows] OpenAL: Fix issues with sounds disappearing when too many sounds are playing at the same time.
•   VM: DestroyArea() now behaves the same as DestroyObject(): Instead of destroying the area immediately, it schedules it for removal immediately after script exit. This fixes accessing freed memory when destroying an area from an area event.
•   VM: GetCasterLevel() now returns 0 for AOEs instead of crashing. #34
•   classes.2da: fix not using SpellcastingAbil for non-memorising casters. #39
•   [Windows] nwhak.exe: Add support for ktx, ttf, sql, tml, sq3, lod file types.
•   [Windows] We fixed settings.tml sometimes not being written out properly.

Toolset

•   Access violation when compiling scripts with nested structs has been fixed.

New Script Commands

Code: [Select]
// Returns the build number of oPlayer (i.e. 8193).
// Returns 0 if the given object isn't a player or did not advertise their build info.
int GetPlayerBuildVersionMajor(object oPlayer);

// Returns the patch revision of oPlayer (i.e. 8).
// Returns 0 if the given object isn't a player or did not advertise their build info.
int GetPlayerBuildVersionMinor(object oPlayer);

Art & Content

•   Doors on area edges have been fixed. #13
•   TTF01_T13_01, TTF01_S13_01: Fixed torches to work properly w/ Source Lights & w/o glowing meshes, and a campfire emitter that never shut off
•   TTF01_P10_01: Restored missing waterfall animation, with an animloop to control it
•   TDC01_Q02_01: Restored missing animated meshes from Bioware Source files, and merged them back into the tile
•   TWC03_C43_02 (SET File): Set the X-position to 0.0 instead of a negative scientific number
•   TNO01_M53_(11-14): Repaired a bad texture assignment, and closed a seam running along two tile edges
•   Bad campfire animation on TTF01_T13_01
•   Fixed stringy shadows on Driftwoods 1&2, Market Stall 01, Dragon Statue, and Castle Rural tiles TNO01_A06_01, TNO01_B51_02, & TNO01_C01_02
•   Driftwood 2, TNO01_A06_01: Fixed Shadows (again)
•   Alchemist Apparatus 1 & 2: Shadow, UV, Mesh & Walkmesh fixes
•   TN_SDOOR_02 Fixed a broken/missing animation (#26)
•   TN_SDOOR_19 Reclassified as Type=Door (#29)
•   TNO_V00_09 Fixed ground texture (now set back to Grass) (#25)
•   TNO01_Chain01.DDS Cleaned up the alpha channel and texture shape, resized to 2x (512 x 256) (#23)
•   TNO01_B70_01 Repaired misplaced geometry (#22)
•   TCN01_J17_01 Repaired misplaced geometry, fixed animation to use an animloop (and allow shutdown)
•   TTZ01_EDGE.2da Added an entry to accomodate elevated stream with grass (used to show up blank-edged)
•   NW_IT_ARMHE007.uti Removed the unnecessary 50 charges for Thieves' Hood (#24)

Premium Modules

•   Kingmaker: Missing assets from 1.0 have been restored, including script sources
•   Shadow Guard: Script sources are now included
•   Witches Wake: Script sources are now included
•   Darkness over Daggerford, Tyrants of the Moonsea: New door tiles to replace the Placeable Doors; assorted tile fixes to enable drive-through transitions
•   Darkness over Daggerford: Replaced a missing door in the Stronghold
•   Darkness over Daggerford: Fixed stringy shadows on the Kocharan model
•   Tyrants of the Moonsea: Fixed a bad campfire animation on TTF01_T13_01 (Facelift version)
•   Tyrants of the Moonsea: Fixed door with bad orientation in TCM02, as well as Melvaunt Shipyards (Entrance to Resting Place of the Whip)
•   Darkness over Daggerford: Fixed a crash with the Kocharan model (only when compiled and spawned via script)
•   Tyrants of the Moonsea: Rearranged placeables that shifted and blocked a doorway in Zhentil Keep (when the door was opened).

Toolset

•   Removed the warning dialogue that shows when opening a module with haks.
•   Added a setting to always open module directories.
•   The outdated and unused registry read + warning UI has been purged.
•   Conversation editor opening time has been optimised.
•   Modules are now sorted alphabetically and the last-opened module is selected by default.
•   Modern UI skinning has been enabled.
•   The tabbed UI is now on by default.
•   Fixed a crash when pasting objects from a closed area.
•   Fixed a bug in placeable properties UI where it would open the wrong dialogue file.



I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #39 on: August 08, 2020, 02:32:04 AM »
Development Build 8193.14
Fri, 7 August 2020



Hello Neverwinter friends!

Today is the day for a new development patch, and it is a big one. Please test it thoroughly, as we intend this to hit stable in the coming weeks!

This patch is compatible with the current stable (8193.13), so you can play on servers with it that have not yet upgraded. However, some of the new features will not work on servers. To get the full experience, you will have to update both server and clients to this patch.

New Lighting Engine

This patch includes a new enhanced lighting engine, that is governed by the same principles as you would see in other modern games that aim for realistic lighting. The aim is both to allow much higher quality future content, but also in large to enhance the visual quality of existing content.

Pictures say more than a thousand words:

https://nwn.beamdog.net/web/8193.14-comparison-shots/

The blue dot in the middle can slide left and right to compare before/after. The left side is the old/current render; the right side is the new lighting engine.

These are the main elements of this new lighting engine:
•   Physically based rendering (PBR), with emulation of specular reflection, surface “roughness”, Fresnel-effects and gamma correction. All in all, this gives a more realistic and “natural” look.
•   Tone mapping that prevents color distortion of bright lights and enables overbright.
•   Per-pixel lighting rather than per-vertex of the old setup, yielding much more precise light illumination levels relative to distance.
•   Full dynamic lighting, supporting up to 32 dynamic lights (previously NWN effectively only supported 6).


The lighting engine is by default on, but optional, as it is heavier on the GPU than the previous lighting model (especially if you run with 32 lights, but a minimum of 16 lights is recommended). You can turn it off in the Options menu. You can also tweak various parameters of the new lighting engine, such as attenuation and falloff. We would suggest leaving them at the defaults though, to ensure uniform content presentation.

Note that since the new lighting engine constitutes a significantly different way of computing light interaction and behavior, it is inevitable that overall illumination levels in some areas will change, which can result in certain areas becoming too bright or too dark. We have been carefully tuning the various parameters to minimize this effect, but ultimately, moving toward more realistic and sophisticated lighting will always come with this trade-off. If you find that the game has become too dark or too bright, we recommend that you adjust the brightness level by using the gamma slider accessible in the graphics options.

New Water Rendering

Water presentation has also been improved significantly. It now renders full dynamic light reflections, including sun and moon. It also shows wave displacement based on area wide and local wind sources (such as explosions) much more realistically than the previous water did.

As with the other lighting changes, some areas may appear differently, and builders using tile lights will now see them in the reflections, and may wish to edit an area’s lights so that both the area and the reflections appear as desired.

There are configuration options in the UI to turn this feature off.

Again, please visit this link to see the improvements to water in action:

https://nwn.beamdog.net/web/8193.14-comparison-shots/

Grass Rendering

Grass is now rendered sorted by distance, fixing transparency issues and making it look denser and more natural.

The comparison link posted above has visual examples of this.

Grass rendering also has been heavily optimised and should no longer pose a performance consideration, even in scenes with lots of it.

Other miscellaneous graphical improvements

Models spawned by visual effects now have fog properly applied and are not self-illuminated with a bright light anymore. This makes content spawned as visual effect render identical to other in game content, making things such as VFX spawned tiles and character equipment appear more natural.

Content import from Ossian premium modules

This patch includes all content from Darkness over Daggerford and Tyrants of the Moonsea, except the Rural Forest and Winter tileset facelifts by Zwerkules.
•   Medieval City, Medieval Rural, and Mountain Snow sets, by Zwerkules
•   Lizardfolk Interior microset
•   Seaships microset
•   Additions to several tilesets:
•   Several new docking ships groups, and a thatched-roof building, in Castle Exterior, Rural
•   New doorway tiles for Crypts and City Interior
•   476 assorted placeables
•   13 creature models
•   3 shields, the Wand of Orcus, and a brass candlestick 'torch'
•   A complete "time of day" skybox texture set for the “Icy, Clear sky” skybox
•   42 ambient Music tracks
•   54 load screens
•   25 assorted ambient sounds
•   5 sound sets (for specific new creatures)
•   Palettes and blueprints for all imported Ossian content: Items, Creatures, and Placeables

Player Dungeon Master Mode

Players can now acquire and relinquish DM privileges during normal play, assuming they know the DM password. A player DM will have all of the normal dungeon master ruleset amenities: Their player character will turn invincible; they will be able to cast any spell they wish, and their skill checks will always be made against max.

However, player DMs will not gain features specific to DM characters: Their feat list will not include all the DM abilities, and they will not walk any faster. They will also not join the DM party/faction, so they will not be able to see all player parties.

Dedicated servers can turn this off in configuration.

To enter player DM mode, you can use the console commands (`dm_login <pw>` and `dm_logout`), or you can use the debug UI.

There is a new script command that can be used to distinguish between player DMs and “real” DMs:
Code: [Select]
// Returns TRUE if the given player-controlled creature has DM privileges
// gained through a player login (as opposed to the DM client).
// Note: GetIsDM() also returns TRUE for player creature DMs.
int GetIsPlayerDM(object oCreature);


As a consequence, GetIsDM() will now return TRUE for player DMs. Previously, you could rely on this being static per-connection, as true DMs could not drop their privileges.
Pathfinding improvements

Pathfinding quality in placeable and creature-heavy areas has been significantly improved, beyond the optimisations already done in 8193.13.

Your character should no longer get stuck on random placeables, or not find their way around other creatures.
Conversation script parameters

You can now specify script parameters in the toolset conversation editor, and these parameters can be queried via new the new script command:
Code: [Select]
// Returns the script parameter value for a given parameter name.
// Script parameters can be set for conversation scripts in the toolset's
// Conversation Editor, or for any script with SetScriptParam().
// * Will return "" if a parameter with the given name does not exist.
string GetScriptParam(string sParamName);


There is also a script command to set parameters when invoking other scripts via ExecuteScript.
Code: [Select]
// Set a script parameter value for the next script to be run.
// Call this function to set parameters right before calling ExecuteScript().
void SetScriptParam(string sParamName, string sParamValue);

Scripted access to SQLite databases

Full access to the sqlite API has been added.

You can access the following databases:
•   Campaign: Databases spanning modules and savegames, living in database/.
•   Module: A database attached to the running module, persisted to savegames.
•   Player: Each player character has a database attached that gets saved to the character .bic file when saving to a vault (local/server), or exporting the character in singleplayer. It also gets saved to savegames.


To get you started, please check INSTALLDIR/lang/en/docs/SQLite.txt for a short introduction and further documentation on the newly-added script commands.

Please note: This is an advanced feature, and requires a solid understanding of SQL to make robust and effective use of.
Scripted mouse targeting mode

You can now trigger cursor targeting mode from scripting:
Code: [Select]
// Makes oPC enter a targeting mode, letting them select an object as a target
// If a PC selects a target, it will trigger the module OnPlayerTarget event.
void EnterTargetingMode(object oPC, int nValidObjectTypes = OBJECT_TYPE_ALL, int nMouseCursorId = MOUSECURSOR_MAGIC);

// Gets the target object in the module OnPlayerTarget event.
// Returns the area object when the target is the ground.
object GetTargetingModeSelectedObject();

// Gets the target position in the module OnPlayerTarget event.
vector GetTargetingModeSelectedPosition();

// Gets the player object that triggered the OnPlayerTarget event.
object GetLastPlayerToSelectTarget();


A new module event has been added to support this.

Caveat: The toolset cannot currently configure this module event. You need to set it via SetEventScript() at module load.

New script actions related to item property usage

These script commands allow NWScript to properly trigger item property usage, circumventing the Talent system.
Code: [Select]
// Returns the number of uses per day remaining of the given item and item property.
// * Will return 0 if the given item does not have the requested item property,
// or the item property is not uses/day.
int GetItemPropertyUsesPerDayRemaining(object oItem, itemproperty ip);

// Sets the number of uses per day remaining of the given item and item property.
// * Will do nothing if the given item and item property is not uses/day.
// * Will constrain nUsesPerDay to the maximum allowed as the cost table defines.
void SetItemPropertyUsesPerDayRemaining(object oItem, itemproperty ip, int nUsesPerDay);

// Queue an action to use an active item property.
// * oItem - item that has the item property to use
// * ip - item property to use
// * object oTarget - target
// * nSubPropertyIndex - specify if your itemproperty has subproperties (such as subradial spells)
// * bDecrementCharges - decrement charges if item property is limited
void ActionUseItemOnObject(object oItem, itemproperty ip, object oTarget, int nSubPropertyIndex = 0, int bDecrementCharges = TRUE);

// Queue an action to use an active item property.
// * oItem - item that has the item property to use
// * ip - item property to use
// * location lTarget - target location (must be in the same area as item possessor)
// * nSubPropertyIndex - specify if your itemproperty has subproperties (such as subradial spells)
// * bDecrementCharges - decrement charges if item property is limited
void ActionUseItemAtLocation(object oItem, itemproperty ip, location lTarget, int nSubPropertyIndex = 0, int bDecrementCharges = TRUE);

Override hilite colour on objects

You can now override the mouse-over (“hilite”) colour on objects.
Code: [Select]
// Sets oObject's hilite color to nColor
// The nColor format is 0xRRGGBB; -1 clears the color override.
void SetObjectHiliteColor(object oObject, int nColor = -1);

Custom mouse cursors

You can now override the mouse cursor a ingame object presents. Additionally, mouse cursors have been unhardcoded, so you can add more via custom content (see MOUSECURSOR_CUSTOM_00).
// Sets the cursor (MOUSECURSOR_*) to use when hovering over oObject
void SetObjectMouseCursor(object oObject, int nCursor = -1);

ProgFX have been unhardcoded

A new 2da, progfx.2da has been added, that links visualeffect.2da columns. This allows for adding additional custom skin effects, beams, MIRVs, etc.
Texture replacements

You can now replace individual textures on objects at runtime
Code: [Select]
// Replace's oObject's texture sOld with sNew.
// Specifying sNew = "" will restore the original texture.
// If sNew cannot be found, the original texture will be restored.
// sNew must refer to a simple texture, not PLT
void ReplaceObjectTexture(object oObject, string sOld, string sNew = "");

Walk animations have been unhardcoded

You can add new walk anims by naming them `walk_002`, `walk_003`, etc. (001 is walkdead, 002 is hardcoded to walkinj)
Scripted wind management

The game now allows much finer-grained scripted control over the wind data.
Code: [Select]
// Sets the detailed wind data for oArea
// The predefined values in the toolset are:
// NONE: vDirection=(1.0, 1.0, 0.0), fMagnitude=0.0, fYaw=0.0, fPitch=0.0
// LIGHT: vDirection=(1.0, 1.0, 0.0), fMagnitude=1.0, fYaw=100.0, fPitch=3.0
// HEAVY: vDirection=(1.0, 1.0, 0.0), fMagnitude=2.0, fYaw=150.0, fPitch=5.0
void SetAreaWind(object oArea, vector vDirection, float fMagnitude, float fYaw, float fPitch);

Visual effects can now use PLT textures

Visual effects can now refer to PLT textures. The layer colours/indices are inherited from the object the effect is applied to (such as creatures).
Visual effects can now be scaled, rotated, and translated

When applying a visual effect, you can now scale, rotate and translate it, in relation to the parented object. The script commands have been extended to support this:
effect EffectVisualEffect(int nVisualEffectId, int nMissEffect=FALSE, float fScale=1.0f, vector vTranslate=[0.0,0.0,0.0], vector vRotate=[0.0,0.0,0.0]);

effect EffectBeam(int nBeamVisualEffect, object oEffector, int nBodyPart, int bMissEffect=FALSE, float fScale=1.0f, vector vTranslate=[0.0,0.0,0.0], vector vRotate=[0.0,0.0,0.0]);

Modules and HAKs can now contain more than 16k items

The game can now load more than 16356 resources from ERF containers (modules and haks).
New Configuration UI

The game options UI has been replaced with a new implementation that now allows access to all of the new configuration options. The “Debug UI” configuration tab has been removed as a consequence.

This UI is still work in progress, but it is useful enough to include now in the development patch.
Debug UI has been revamped, including a new NWScript evaluation helper

The debug UI has been rewritten to be leaner and expose more useful features. You can now toggle DebugMode, renderaab, rendertilepathnodes via checkboxes.

A new widget has been added that allows evaluating NWScript snippets on the running server (assuming you have DM privileges, or are in DebugMode).
Local variable access has been sped up significantly

Local variable access on objects is now O(n) in the worst case, but usually significantly faster than that. This is especially noticeable when you have thousands of variables on a single object. Previously, this could take up to 500ms to read a single variable; now access is below 10ms in these scenarios.

Art Changes

•   TDT01_G02_01,TDT01_G02_01,TDT01_G08_01: Repaired walkmeshes, #46
•   Repaired DAG01.set file to NOT offer unsupported height transitions #70
•   Eliminated a SQRT Domain error in a couple Treehouse Side Log Tiles (TTF02_B01_02,TTF02_B01_12) #76
•   TTF01_G04_05: Fixed bad texture assignment, tweaked alpha for better blending #77
•   TTF01_C01_02: Replaced wintery leaf texture from Winter tileset w/ proper Forest texture #77
•   TTF01_G01_01: Fixed a typo in TTF01.set which kept minimap from showing up #77
•   TCN01_Water01.tga: Increased size to 256x256, cleaned up tiling seams
•   TRM02: Recompiled a few tiles throwing SQRT domain errors #72
•   TDE01_H07_01: Fixed a bad texture assignment and UV's, added lava spouts to either side of bridge (w/ animloop01 toggle) #122
•   TDE01_A08_01: Adjusted lava mesh 0.382cm to eliminate a visible seam with neighboring tiles #117
•   PTM_CardTable1: Fixed Bounding Box #109
•   TDS01_D07_01: Fixed a SQRT domain error
•   Reworked a few creature blueprints to more closely match 3E #95
•   Fixed bad collisions in tn_sdoor_04 and tn_sdoor_16
•   Repaired city exterior tcn_a11_01
•   Compiled 165 more models in tno01
•   TNO01_V02_03: Fixed splash VFX on waterfall (back onto its own animloop, waterfall animation still intermittent)
•   TWC03_A04_07: Fixed broken/blinking chandelier candle animations
•   Repaired bounding box on Candlestick torch; changed light to yellow 5m; repaired mesh and fixed smoke placement #95
•   Removed erroneous palette entry from Birds category #107
•   Compiled ~200 models (mostly for DODEE)

Miscellaneous Script Commands

The StringToObject() script command can be used as the reverse of ObjectToString().
// Convert sHex, a string containing a hexadecimal object id,
// into a object reference. Counterpart to StringToObject().
object StringToObject(string sHex);

Miscellaneous Improvements

•   Texture pack support has been removed. All texture pack content has been merged into nwn_base.key.
•   GUI: The bright ambient light has been disabled in UI scenes. This results in a more natural look in chargen and the compass.
•   Nui: Windows now store position, size and collapse state in tml
•   Nui: Modal windows now autosize to parent
•   nwsync: increased check batch size for verifying existing data, dramatically speeding up process
•   nwsync: increased local recv buffer size, speeding up transfers on low framerates
•   WriteTimestampedLogEntry() now gets sent to all players as a console/debug message, if the server is in DebugMode. This is mostly useful for singleplayer module testing, when the module author uses the game log for debugging.
•   ExoConfig: Trap and highlight colors are now stored as hex codes.
•   DDS textures now support BC4 and BC5 encodings, to provide higher quality DDS options for greyscale and two-channel textures, such as height or specularity.
•   The data build now includes a 2da.zip, containing all 2da files from the build.

Fixes

•   Fixed large creatures intruding into your personal space. #124
•   Config: The experimental “Aggressive Texture Caching” option has been removed (it is now on for everyone).
•   Sending WriteTimestampedLogEntry messages to clients in DebugMode can now be toggled off with a setting.
•   NUI expand/minimize chevrons have been inverted.
•   Chat Panes: When in split mode, second chat pane now shows CONSOLE-level messages (debug messages, etc) #18
•   Character generation: Spell school strrefs are now actually read from the 2da
•   VM: Script situations now always keep a hold of the actual bytecode they are spawned from. This fixes the game doing funny things when the underlying compiled script file is swapped out. This also fixes code closures from within ExecuteScriptChunk (and the Debug UI).
•   Store and load TemplateResRef from gff for door object types (so that GetResRef() does not return “”). #100
•   Dead players now call CNWSArea::DecrementPlayersInArea() #105
•   VM::AdjustAlignment(): fixed ALIGNMENT_ALL echoing wrong axis labels #55
•   VM::AdjustAlignment(): Game will now render the actual alignment shift that has happened, instead of the requested one: AdjustAlignment(-100) when at 50 will now say "You have shifted by -35" (to get you to 15, where the good/evil notchiness is) instead of "You have shifted by -100" but still putting you to 15.
•   VM::AdjustAlignment(): Game will now not render any feedback if no alignment shift occurred (previously, it would render "Your alignment has shifted by -100" if you requested -100, even if you were already at rock bottom).
•   Object hilite state is now properly persisted to GFF.
•   Fixed the game crashing or reading invalid memory when quickslotting spells as a DM.
•   Fixed a crash happening with drag & drop of inventory icons.
•   Area transition screens on the client no longer partially render a grey overlay.
•   Drag selection rendering in DM client was fixed.
•   The nwhak.exe binary has moved into bin/, out of util/.
•   Fixed heap overflow in ExoString::Insert (VM::Insert, dm_dumplocals)
•   DestroyArea(): no longer skip the last object; this used to leave things in object space attached to nothing
•   Movies: search path now prefers userdirectory over install, allowing users to override base movies.
•   GUI: Nuklear-based UI now emits sounds when clicking buttons. #5
•   GUI: The button “Remove Server from Favorites” in MP ui has been made to work once again.
•   GPU vendor optimisations are now detected automatically; the config key optimize-buffer-updates has been removed.
•   ambientmusic.2da: Fixed ids #80
•   Fixed a off-by-one issue when adding journal entries.
•   VM: A memleak in PostString has been fixed.

Toolset

•   Toolset: Fixed bearing not being saved for placeables and doors
•   Toolset: texture pack selector was removed.
•   Toolset: Removed errant “OK” label in Area Properties #59
•   Toolset: Portrait backgrounds in object properties have been fixed.
•   Toolset: Update static lighting after changing tile light properties.
•   Toolset: The Bearing float should no longer flap sign when saving out the area gff.
•   Toolset: Improved script editor responsiveness as well as save/load module performance.
•   Toolset: Area view settings are now applied to all open tabs.
•   Toolset: A menu option to toggle AABB rendering was added.
•   Toolset: No longer select last-opened module in save UI.
•   Toolset: The UI for caching scripts has been removed, as the underlying system has been disabled for a while. It was pointless and counterproductive from a performance standpoint.
•   Toolset is now linked to 32bit oal-soft. Hopefully no more sound woes.

Campaigns and Premiums

•   Campaign SoU: Fixed the Baby Achievement
•   TotM: Small fix for floating placeables in Elmwood





I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #40 on: September 09, 2020, 11:41:44 PM »
Development Build 8193.15
Wed, 9 September 2020



Hello, dear community!

This is development build 8193.15, which stabilises the previous .14 release. This is in all likelihood the last release before a stable patch, right around the corner.


Tileset Facelifts
•   Added Forest and Rural Winter Facelift tilesets.
•   Added configuration option to transparently use facelift variants of Forest and Rural Winter instead of default tilesets for official Campaigns and DLC. (Custom content wanting to use these tilesets for existing areas will have to change the tileset in the .are file reference manually; the tilesets are hotswappable after all. Or build new areas with the Facelift tilesets.)

Features
•   Config UI: Added graphical presets: Low, Good, Best.
•   Added a configuration setting: General Shader/Lighting Quality.
•   Polished metal (armour, etc) to now be a bit more shiny again.
•   Renderer: Water random noise is now a noise texture, same as keyholing. This improves water performance significantly.
•   Shaders: Defines BUILD_VERSION and BUILD_REVISION expose build info.

Fixes
•   Fixed dying creatures sometimes spawning a random VFX.
•   Renderer: Fixed grass occasionally overlapping, resulting in flickering.
•   Renderer: Removed artifacts appearing when shadow optimization was enabled.
•   Renderer: Fixed dynamic lights taking too long to fade in (FPS-dependent issue).
•   Renderer: Fixed some grayscale textures erroneously showing up with a tint.
•   Renderer: Fixed needlessly recalculating static lights in full dynamic light mode; this used to impact performance heavily with some specific static tile lights.
•   Renderer: Minor tweaks to the appearance of the water shader, as well as some lighting parameters.
•   Fixed wind direction variation being offset by 120 degrees at peak.
•   [Linux] nwserver: no longer include libsndio in dependency list.
•   Config UI: Slider values now editable via keyboard input (Just click the text label).
•   Config UI: Fix floating point values incorrectly showing as modified when at default value.
•   PlayerDM mode: Player DMs no longer auto-explore areas fully on enter as a native DM would.
•   SQLite: No longer emit “error: schema has changed” non-errors when related to migrations.
•   VM: DestroyArea will now also fail with return code -2 if players are currently on a load screen transitioning into the area.

Toolset
•   Toolset: Fixed area shadows rendering incorrectly/without fog applied.
•   Toolset: Fixed a crash in Area Statistics. #139

Art
•   TTF02 & TTS02: Baked a new set of minimaps, to add missing waters and roads
•   TNO01: Fixed 3x1 and 4x1 Ship (Grass Set) for floating meshes (X-form)
•   TTS02: Replaced Road to Bridge texture, fixed walkmesh
•   Placeable Fog Emitters: Added missing mf_smoke texture
•   Daggerford & Tyrants of the Moonsea Placeables:
•   Reworked placeable Use nodes on card table, and a couple other props (#110)
•   Shadow and Mesh fixes
•   Bounding Box fixes
•   PX2_G02 (Dragon Statue): Fixed flipped collision
•   Emerald Golem: Set the skinmesh so golems body would also be translucent
•   TNO01: Fixed tiles from Grass group that were using tno01_dirt03 City ground (#152)
•   PLC_F06 (Catapult): Fixed shadows on multiple meshes, welded parts and gave it a proper rope texture
•   TTS02: Several Shadow Fixes, Mesh Fixes
•   TNO01: Restored 3 thatch houses (Grass section) that never made palette. New doors added to doortypes.2da (tn_sdoor_03, tn_sdoor_25)
•   TDM01: Mining Platform 2 (2x2) Fixed an animloop that wouldn't shut off, and added one for the molten forge tile
•   TWC03_A02_07: Fixed a broken fireplace animation
•   TTS02 & TTF02: Shadow fixes, new & fixed animations (w/ new animloop options), a-nodes for transparency (water etc. blends properly)
•   TSS13 (Seaships): Fixed several boats that were causing a toolset crash #142

Weather Types Unhardcoded

Added new 2da: weatherypes.2da; which - unsurprising, considering the name - unhardcodes weather types.



I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #41 on: September 16, 2020, 12:52:56 AM »
Stable Patch 81.8193.15
Tue, 15 September 2020

Greetings, friends!

Today we release Patch 8193.15 for Neverwinter Nights: Enhanced Edition!


This update is big — the biggest the game has seen since its original release in 2018. We’re introducing a new lighting engine to enhance the graphics, dozens of toolset updates, plus plenty more features and fixes. Read on for all the details!

As always, this patch is network-compatible within the current major version (8193), including the old stable release .13; so you can play on servers with it that have not yet upgraded (though the majority of the new features will not work). To get the full experience, you will have to update both server and clients to this release. Singleplayer modules made with this new patch 1.81 cannot be played on older versions, however.

New Lighting Engine
This patch includes a new enhanced lighting engine, that is governed by the same principles as you would see in other modern games that aim for realistic lighting. The aim is both to allow much higher quality future content, but also to enhance the visual quality of existing content.

These are the main elements of this new lighting engine:
•   Physically based rendering (PBR), with emulation of specular reflection, surface “roughness”, Fresnel-effects and gamma correction. All in all, this gives a more realistic and “natural” look.
•   Tone mapping that prevents color distortion of bright lights and enables overbright.
•   Per-pixel lighting rather than per-vertex of the old setup, yielding much more precise light illumination levels relative to distance.
•   Full dynamic lighting, supporting up to 32 dynamic lights (previously NWN effectively only supported 6).


Since a picture says more than a thousand words, please visit this link to see some comparison shots:

https://nwn.beamdog.net/web/8193.14-comparison-shots/

Slide the blue dot in the middle of the images to compare before/after. The left side is the old/current render; the right side is the new lighting engine.

The lighting engine is by default on, but optional, as it is heavier on the GPU than the previous lighting model (especially if you run with 32 lights, but a minimum of 16 lights is recommended). You can turn it off in the Options menu. You can also tweak various parameters of the new lighting engine, such as attenuation and falloff. We would suggest leaving them at the defaults though, to ensure uniform content presentation.

Note that since the new lighting engine constitutes a significantly different way of computing light interaction and behavior, it is inevitable that overall illumination levels in some areas will change, which can result in certain areas becoming too bright or too dark. We have been carefully tuning the various parameters to minimize this effect, but ultimately, moving toward more realistic and sophisticated lighting will always come with this trade-off. If you find that the game has become too dark or too bright, we recommend that you adjust the brightness level by using the gamma slider accessible in the graphics options.

New Water Rendering
Water presentation has also been improved significantly. It now renders full dynamic light reflections, including sun and moon. It also shows wave displacement based on area wide and local wind sources (such as explosions) much more realistically than the previous water did.

As with the other lighting changes, some areas may appear differently, and builders using tile lights will now see them in the reflections, and may wish to edit an area’s lights so that both the area and the reflections appear as desired.

There are configuration options in the UI to turn this feature off.

Again, please visit this link to see the improvements to water in action:

https://nwn.beamdog.net/web/8193.14-comparison-shots/

Grass Rendering
Grass is now rendered sorted by distance, fixing transparency issues and making it look denser and more natural.

The comparison link posted above has visual examples of this.

Grass rendering also has been heavily optimised and should no longer pose a performance consideration, even in scenes with lots of it.

Other miscellaneous graphical improvements
Models spawned by visual effects now have fog properly applied and are not self-illuminated with a bright light anymore. This makes content spawned as visual effect render identical to other in game content, making things such as VFX spawned tiles and character equipment appear more natural.

Content import from Ossian premium modules
This patch includes all content from Darkness over Daggerford and Tyrants of the Moonsea.
•   Tileset facelifts for the Forest and Rural Winter tileset, crafted by Zwerkules
•   Medieval City, Medieval Rural, and Mountain Snow sets, also by Zwerkules
•   Lizardfolk Interior microset
•   Seaships microset
•   Additions to several tilesets:
•   Several new docking ships groups, and a thatched-roof building, in Castle Exterior, Rural
•   New doorway tiles for Crypts and City Interior
•   476 assorted placeables
•   13 creature models
•   3 shields, the Wand of Orcus, and a brass candlestick 'torch'
•   A complete "time of day" skybox texture set for the “Icy, Clear sky” skybox
•   42 ambient Music tracks
•   54 load screens
•   25 assorted ambient sounds
•   5 sound sets (for specific new creatures)
•   Palettes and blueprints for all imported Ossian content: Items, Creatures, and Placeables


For the tileset facelifts, there is a configuration toggle (on by default) to use them in the main campaigns and all official DLC. Custom content modules can use them as new tilesets. (As the tile layout is compatible, you could also just open the .are file in GFFEditor and replace the tileset reference.)

Player Dungeon Master Mode
Players can now acquire and relinquish DM privileges during normal play, assuming they know the DM password. A player DM will have all of the normal dungeon master ruleset amenities: Their player character will turn invincible; they will be able to cast any spell they wish, and their skill checks will always be made against max.

However, player DMs will not gain features specific to DM characters: Their feat list will not include all the DM abilities, and they will not walk any faster. They will also not join the DM party/faction, so they will not be able to see all player parties.

Dedicated servers can turn this off in configuration.

To enter player DM mode, you can use the console commands (`dm_login <pw>` and `dm_logout`), or you can use the debug UI.

There is a new script command that can be used to distinguish between player DMs and “real” DMs:
Code: [Select]
// Returns TRUE if the given player-controlled creature has DM privileges
// gained through a player login (as opposed to the DM client).
// Note: GetIsDM() also returns TRUE for player creature DMs.
int GetIsPlayerDM(object oCreature);


As a consequence, GetIsDM() will now return TRUE for player DMs. Previously, you could rely on this being static per-connection, as true DMs could not drop their privileges.

Pathfinding improvements
Pathfinding quality in placeable and creature-heavy areas has been significantly improved, beyond the optimisations already done in 8193.13.

Your character should no longer get stuck on random placeables, or not find their way around other creatures.
Conversation script parameters

You can now specify script parameters in the toolset conversation editor, and these parameters can be queried via new the new script command:
Code: [Select]
// Returns the script parameter value for a given parameter name.
// Script parameters can be set for conversation scripts in the toolset's
// Conversation Editor, or for any script with SetScriptParam().
// * Will return "" if a parameter with the given name does not exist.
string GetScriptParam(string sParamName);


There is also a script command to set parameters when invoking other scripts via ExecuteScript.
Code: [Select]
// Set a script parameter value for the next script to be run.
// Call this function to set parameters right before calling ExecuteScript().
void SetScriptParam(string sParamName, string sParamValue);

Scripted access to SQLite databases
Full access to the sqlite API has been added.

You can access the following databases:
•   Campaign: Databases spanning modules and savegames, living in database/.
•   Module: A database attached to the running module, persisted to savegames.
•   Player: Each player character has a database attached that gets saved to the character .bic file when saving to a vault (local/server), or exporting the character in singleplayer. It also gets saved to savegames.


To get you started, please check INSTALLDIR/lang/en/docs/SQLite.txt for a short introduction and further documentation on the newly-added script commands.

Please note: This is an advanced feature, and requires a solid understanding of SQL to make robust and effective use of.
Scripted mouse targeting mode
You can now trigger cursor targeting mode from scripting:

Code: [Select]
// Makes oPC enter a targeting mode, letting them select an object as a target
// If a PC selects a target, it will trigger the module OnPlayerTarget event.
void EnterTargetingMode(object oPC, int nValidObjectTypes = OBJECT_TYPE_ALL, int nMouseCursorId = MOUSECURSOR_MAGIC);

// Gets the target object in the module OnPlayerTarget event.
// Returns the area object when the target is the ground.
object GetTargetingModeSelectedObject();

// Gets the target position in the module OnPlayerTarget event.
vector GetTargetingModeSelectedPosition();

// Gets the player object that triggered the OnPlayerTarget event.
object GetLastPlayerToSelectTarget();

A new module event has been added to support this.

Caveat: The toolset cannot currently configure this module event. You need to set it via SetEventScript() at module load.

New script actions related to item property usage

These script commands allow NWScript to properly trigger item property usage, circumventing the Talent system.
Code: [Select]
// Returns the number of uses per day remaining of the given item and item property.
// * Will return 0 if the given item does not have the requested item property,
// or the item property is not uses/day.
int GetItemPropertyUsesPerDayRemaining(object oItem, itemproperty ip);

// Sets the number of uses per day remaining of the given item and item property.
// * Will do nothing if the given item and item property is not uses/day.
// * Will constrain nUsesPerDay to the maximum allowed as the cost table defines.
void SetItemPropertyUsesPerDayRemaining(object oItem, itemproperty ip, int nUsesPerDay);

// Queue an action to use an active item property.
// * oItem - item that has the item property to use
// * ip - item property to use
// * object oTarget - target
// * nSubPropertyIndex - specify if your itemproperty has subproperties (such as subradial spells)
// * bDecrementCharges - decrement charges if item property is limited
void ActionUseItemOnObject(object oItem, itemproperty ip, object oTarget, int nSubPropertyIndex = 0, int bDecrementCharges = TRUE);

// Queue an action to use an active item property.
// * oItem - item that has the item property to use
// * ip - item property to use
// * location lTarget - target location (must be in the same area as item possessor)
// * nSubPropertyIndex - specify if your itemproperty has subproperties (such as subradial spells)
// * bDecrementCharges - decrement charges if item property is limited
void ActionUseItemAtLocation(object oItem, itemproperty ip, location lTarget, int nSubPropertyIndex = 0, int bDecrementCharges = TRUE);

Override hilite colour on objects
You can now override the mouse-over (“hilite”) colour on objects.
Code: [Select]
// Sets oObject's hilite color to nColor
// The nColor format is 0xRRGGBB; -1 clears the color override.
void SetObjectHiliteColor(object oObject, int nColor = -1);

Custom mouse cursors
You can now override the mouse cursor a ingame object presents. Additionally, mouse cursors have been unhardcoded, so you can add more via custom content (see MOUSECURSOR_CUSTOM_00).
Code: [Select]
// Sets the cursor (MOUSECURSOR_*) to use when hovering over oObject
void SetObjectMouseCursor(object oObject, int nCursor = -1);

ProgFX have been unhardcoded
A new 2da, progfx.2da has been added, that links visualeffect.2da columns. This allows for adding additional custom skin effects, beams, MIRVs, etc.

Texture replacements
You can now replace individual textures on objects at runtime.
Code: [Select]
// Replace's oObject's texture sOld with sNew.
// Specifying sNew = "" will restore the original texture.
// If sNew cannot be found, the original texture will be restored.
// sNew must refer to a simple texture, not PLT
void ReplaceObjectTexture(object oObject, string sOld, string sNew = "");

Walk animations have been unhardcoded
You can add new walk anims by naming them `walk_002`, `walk_003`, etc. (001 is walkdead, 002 is hardcoded to walkinj)

Weather Types Unhardcoded
Added new 2da: weatherypes.2da; which - unsurprising, considering the name - unhardcodes weather types.

Scripted wind management
The game now allows much finer-grained scripted control over the wind data.
Code: [Select]
// Sets the detailed wind data for oArea
// The predefined values in the toolset are:
// NONE: vDirection=(1.0, 1.0, 0.0), fMagnitude=0.0, fYaw=0.0, fPitch=0.0
// LIGHT: vDirection=(1.0, 1.0, 0.0), fMagnitude=1.0, fYaw=100.0, fPitch=3.0
// HEAVY: vDirection=(1.0, 1.0, 0.0), fMagnitude=2.0, fYaw=150.0, fPitch=5.0
void SetAreaWind(object oArea, vector vDirection, float fMagnitude, float fYaw, float fPitch);

Visual effects can now use PLT textures
Visual effects can now refer to PLT textures. The layer colours/indices are inherited from the object the effect is applied to (such as creatures).

Visual effects can now be scaled, rotated, and translated
When applying a visual effect, you can now scale, rotate and translate it, in relation to the parented object. The script commands have been extended to support this:
Code: [Select]
effect EffectVisualEffect(int nVisualEffectId, int nMissEffect=FALSE, float fScale=1.0f, vector vTranslate=[0.0,0.0,0.0], vector vRotate=[0.0,0.0,0.0]);

effect EffectBeam(int nBeamVisualEffect, object oEffector, int nBodyPart, int bMissEffect=FALSE, float fScale=1.0f, vector vTranslate=[0.0,0.0,0.0], vector vRotate=[0.0,0.0,0.0]);

Modules and HAKs can now contain more than 16k items
The game can now load more than 16356 resources from ERF containers (modules and haks).

New Configuration UI
The game options UI has been replaced with a new implementation that now allows access to all of the new configuration options. The “Debug UI” configuration tab has been removed as a consequence.

This UI is still work in progress, but it is useful enough to include now.

Debug UI has been revamped, including a new NWScript evaluation helper
The debug UI has been rewritten to be leaner and expose more useful features. You can now toggle DebugMode, renderaab, rendertilepathnodes via checkboxes.

A new widget has been added that allows evaluating NWScript snippets on the running server (assuming you have DM privileges, or are in DebugMode).

Local variable access has been sped up significantly

Local variable access on objects is now O(n) in the worst case, but usually significantly faster than that. This is especially noticeable when you have thousands of variables on a single object. Previously, this could take up to 500ms to read a single variable; now access is below 10ms in these scenarios.

Art Changes
•   TDT01_G02_01,TDT01_G02_01,TDT01_G08_01: Repaired walkmeshes, #46
•   Repaired DAG01.set file to NOT offer unsupported height transitions #70
•   Eliminated a SQRT Domain error in a couple Treehouse Side Log Tiles (TTF02_B01_02,TTF02_B01_12) #76
•   TTF01_G04_05: Fixed bad texture assignment, tweaked alpha for better blending #77
•   TTF01_C01_02: Replaced wintery leaf texture from Winter tileset w/ proper Forest texture #77
•   TTF01_G01_01: Fixed a typo in TTF01.set which kept minimap from showing up #77
•   TCN01_Water01.tga: Increased size to 256x256, cleaned up tiling seams
•   TRM02: Recompiled a few tiles throwing SQRT domain errors #72
•   TDE01_H07_01: Fixed a bad texture assignment and UV's, added lava spouts to either side of bridge (w/ animloop01 toggle) #122
•   TDE01_A08_01: Adjusted lava mesh 0.382cm to eliminate a visible seam with neighboring tiles #117
•   PTM_CardTable1: Fixed Bounding Box #109
•   TDS01_D07_01: Fixed a SQRT domain error
•   Reworked a few creature blueprints to more closely match 3E #95
•   Fixed bad collisions in tn_sdoor_04 and tn_sdoor_16
•   Repaired city exterior tcn_a11_01
•   Compiled 165 more models in tno01
•   TNO01_V02_03: Fixed splash VFX on waterfall (back onto its own animloop, waterfall animation still intermittent)
•   TWC03_A04_07: Fixed broken/blinking chandelier candle animations
•   Repaired bounding box on Candlestick torch; changed light to yellow 5m; repaired mesh and fixed smoke placement #95
•   Removed erroneous palette entry from Birds category #107
•   Compiled ~200 models (mostly for DODEE)
•   TTF02 & TTS02: Baked a new set of minimaps, to add missing waters and roads
•   TNO01: Fixed 3x1 and 4x1 Ship (Grass Set) for floating meshes (X-form)
•   TTS02: Replaced Road to Bridge texture, fixed walkmesh
•   Placeable Fog Emitters: Added missing mf_smoke texture
•   Daggerford & Tyrants of the Moonsea Placeables:
•   Reworked placeable Use nodes on card table, and a couple other placeables (#110)
•   Shadow and Mesh fixes
•   Bounding Box fixes
•   PX2_G02 (Dragon Statue): Fixed flipped collision
•   Emerald Golem: Set the skinmesh so golems body would also be translucent
•   TNO01: Fixed tiles from Grass group that were using tno01_dirt03 City ground (#152)
•   PLC_F06 (Catapult): Fixed shadows on multiple meshes, welded parts and gave it a proper rope texture
•   TTS02: Several Shadow Fixes, Mesh Fixes
•   TNO01: Restored 3 thatch houses (Grass section) that never made palette. New doors added to doortypes.2da (tn_sdoor_03, tn_sdoor_25)
•   TDM01: Mining Platform 2 (2x2) Fixed an animloop that wouldn't shut off, and added one for the molten forge tile
•   TWC03_A02_07: Fixed a broken fireplace animation
•   TTS02 & TTF02: Shadow fixes, new & fixed animations (w/ new animloop options), a-nodes for transparency (water etc. blends properly)
•   TSS13 (Seaships): Fixed several boats that were causing a toolset crash #142

Miscellaneous Script Commands
The StringToObject() script command can be used as the reverse of ObjectToString().
// Convert sHex, a string containing a hexadecimal object id,
// into a object reference. Counterpart to ObjectToString().
object StringToObject(string sHex);

Miscellaneous Improvements
•   Texture pack support has been removed. All texture pack content has been merged into nwn_base.key.
•   GUI: The bright ambient light has been disabled in UI scenes. This results in a more natural look in chargen and the compass.
•   Nui: Windows now store position, size and collapse state in tml
•   Nui: Modal windows now autosize to parent
•   nwsync: increased check batch size for verifying existing data, dramatically speeding up process
•   nwsync: increased local recv buffer size, speeding up transfers on low framerates
•   WriteTimestampedLogEntry() now gets sent to all players as a console/debug message, if the server is in DebugMode. This is mostly useful for singleplayer module testing, when the module author uses the game log for debugging.
•   ExoConfig: Trap and highlight colors are now stored as hex codes.
•   DDS textures now support BC4 and BC5 encodings, to provide higher quality DDS options for greyscale and two-channel textures, such as height or specularity.
•   Config UI: Added graphical presets: Low, Good, Best.
•   Config UI: Added a configuration setting: General Shader/Lighting Quality.
•   Shaders: Defines BUILD_VERSION and BUILD_REVISION expose build info.

Fixes
•   Renderer: Fixed needlessly recalculating static lights in full dynamic light mode; this used to impact performance heavily with some specific static tile lights.
•   Fixed grass occasionally overlapping, resulting in flickering.
•   Fixed wind direction variation being offset by 120 degrees at peak.
•   SQLite: No longer emit “error: schema has changed” non-errors when related to migrations.
•   VM::DestroyArea() will now also fail with return code -2 if players are currently on a load screen transitioning into the area.
•   Fixed large creatures intruding into your personal space. #124
•   Config: The experimental “Aggressive Texture Caching” option has been removed (it is now on for everyone).
•   Sending WriteTimestampedLogEntry messages to clients in DebugMode can now be toggled off with a setting.
•   NUI expand/minimize chevrons have been inverted.
•   Chat Panes: When in split mode, second chat pane now shows CONSOLE-level messages (debug messages, etc) #18
•   Character generation: Spell school strrefs are now actually read from the 2da
•   VM: Script situations now always keep a hold of the actual bytecode they are spawned from. This fixes the game doing funny things when the underlying compiled script file is swapped out. This also fixes code closures from within ExecuteScriptChunk (and the Debug UI).
•   Store and load TemplateResRef from gff for door object types (so that GetResRef() does not return “”). #100
•   Dead players now call CNWSArea::DecrementPlayersInArea() #105
•   VM::AdjustAlignment(): fixed ALIGNMENT_ALL echoing wrong axis labels #55
•   VM::AdjustAlignment(): Game will now render the actual alignment shift that has happened, instead of the requested one: AdjustAlignment(-100) when at 50 will now say "You have shifted by -35" (to get you to 15, where the good/evil notchiness is) instead of "You have shifted by -100" but still putting you to 15.
•   VM::AdjustAlignment(): Game will now not render any feedback if no alignment shift occurred (previously, it would render "Your alignment has shifted by -100" if you requested -100, even if you were already at rock bottom).
•   Object hilite state is now properly persisted to GFF.
•   Fixed the game crashing or reading invalid memory when quickslotting spells as a DM.
•   Fixed a crash happening with drag & drop of inventory icons.
•   Area transition screens on the client no longer partially render a grey overlay.
•   Drag selection rendering in DM client was fixed.
•   The nwhak.exe binary has moved into bin/, out of util/.
•   Fixed heap overflow in ExoString::Insert (VM::Insert, dm_dumplocals)
•   DestroyArea(): no longer skip the last object; this used to leave things in object space attached to nothing
•   Movies: search path now prefers userdirectory over install, allowing users to override base movies.
•   GUI: Nuklear-based UI now emits sounds when clicking buttons. #5
•   GUI: The button “Remove Server from Favorites” in MP ui has been made to work once again.
•   GPU vendor optimisations are now detected automatically; the config key optimize-buffer-updates has been removed.
•   ambientmusic.2da: Fixed ids #80
•   VM: A memleak in PostString has been fixed.

Toolset
•   Toolset: Fixed bearing not being saved for placeables and doors
•   Toolset: texture pack selector was removed.
•   Toolset: Removed errant “OK” label in Area Properties #59
•   Toolset: Portrait backgrounds in object properties have been fixed.
•   Toolset: Update static lighting after changing tile light properties.
•   Toolset: The Bearing float should no longer flap sign when saving out the area gff.
•   Toolset: Improved script editor responsiveness as well as save/load module performance.
•   Toolset: Area view settings are now applied to all open tabs.
•   Toolset: A menu option to toggle AABB rendering was added.
•   Toolset: No longer select last-opened module in save UI.
•   Toolset: The UI for caching scripts has been removed, as the underlying system has been disabled for a while. It was pointless and counterproductive from a performance standpoint.
•   Toolset is now linked to 32bit oal-soft. Hopefully no more sound woes.

Campaigns and Premiums
•   Campaign SoU: Fixed the Baby Achievement
•   TotM: Small fix for floating placeables in Elmwood



I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 21891
Re: Neverwinter Nights: Enhanced Edition
« Reply #42 on: September 17, 2020, 02:54:55 AM »
Stable Patch 81.8193.16
Wed, 16 September 2020

Hello!

This is a hotfix patch to 8193.15, which we released yesterday.


The changes in this patch are clientside only. You do not need to upgrade your dedicated server if it is already on .15 for full feature support.

Fixes

•   Fixed the game not starting when a language override was selected
•   The music tracks added in the DOD/TOTM content release now show up properly in the toolset (instead of "Bad Strref")
•   The game no longer tries to read the N: drive when trying to load a non-existent supermodel
•   nwscript.nss: Fixed error in description of StringToObject


Known Issues

This is a (incomplete) list of known issues on this build. Items on this list do not need to be reported!

•   Ability score bonuses from levelstat (class progression) do not contribute toward feat requirements when the score increase is received on the same levelup.
•   Non-functional anti-aliasing and anisotropic filtering settings have been removed pending a potential future reimplementation. We suggest you use the driver control panel to force it meanwhile, if so desired.
•   UI: Nuklear-based UI (NWSync, Configuration) does not observe ui scaling
•   UI: Nuklear-based UI (NWSync, Configuration) is not skinned as beautiful as can be
•   UI: Nuklear-based UI (NWSync, Configuration) does not close with the Esc key
•   UI: Nuklear-based UI (NWSync, Configuration) is only partially translated or labels are less descriptive than they could be
•   Water renderer does not use the area environment map, resulting in unseemly seams
•   VM: DestroyArea() sometimes erroneously removes the wrong minimap data on clients, resulting in black/unexplored areas.
•   Hosting a module from within the DM client does not update/show the creator palettes correctly
•   Items dropped on the ground appear to be floating slightly. This is a clientside rendering issue and does not require server/module adjustments by you!
•   Items dropped on tables fall through (mesh hit check). This is also clientside only and does not require you to fix things in the module/in scripting!
•   There is a memleak on the main menu. It does not manifest in game.


I stand against Racism, Bigotry and Bullying

 

Neverwinter Nights Diamond Free

Started by Stardog765Board Games Discussion

Replies: 7
Views: 2851
Last post December 05, 2016, 11:35:04 PM
by Asid