Changelog for NWNX4
* 05.10.2008: Version: 18.104.22.168
- Detours instead of macodehook hooking method. Improves stability and compability of NWNX on certain systems (64 bit, Linux using Wine). Also gets rid of virus alerts thrown by certain anti virus programs (which unjustly classify madcodehook as a virus...)
- MySQL: SCORCO (store and retrieve campaign object) functions support. Finally you can store objects to the database, like items, placeables, ...
- MySQL: Automatic reconnect after "server has gone away" connection loss. If you run NWNX and MySQL as a service, the order in which services are started does not matter any more. NWNX will silently try to connect to MySQL if no connection is open. Also helpful in situations where MySQL disconnects NWNX after prolonged periods of inactivity.
- Graceful shutdown feature allows to specify a message all players receive before the server is taken down. Have a look at nwnx.ini for the new settings.
* 14.07.2007: Version: 22.214.171.124 (Final!)
- Updated source code base to wxWidgets 2.8.3
- Updated SQLite plugin to SQLite version 3.3.17
- NWNX now hooks it's own functions, which Obsidian Entertainment generously added ! This makes it the fastest and most stable NWNX ever, the interface is much nicer for the programmers, and plugins can access more parameters and return more data than ever before.
- All official plugins (SQLite, MySQL, Time) have been updated for the new interface
- The online documentation has been rewritten in large parts.
* 27.01.2007: Version: 126.96.36.199 (Prototype 1.07)
- Introducing NWNX4 GUI! You can now use a graphical user interface to control your server process.
- Added NWNX demo modules. Thanks go to Grinning Fool for providing them !
- New INI file option for MySQL and SQLite plugins "Log level parameter", which controls the amount of information that is written to the log files.
- MySQL and SQLite plugins: If a SELECT statement fails because of an SQL error, the resultset from an earlier query is deleted.
- Updated SQLite library to most recent version 3.3.11
- Fixed a nasty bug in the SQLite plugin that would cause it to stop returning data after an invalid SQL statement (SQL Error) was executed.
- Fixed a a bug that caused the SQLEncodeSpecialCharacters function to return bogus data every now and then. The DB plugins now use a private, static buffer for encoding special characters.
- Shortened string for persistent location storage. Locations can now be stored in less than 128 characters, which is the default column size that NWNX and sql_include assume in general.
* 10.12.2006: Updates to the sql include file
- The include file's name has changed to nwnx_sql, to be more inline with the other include files
- The GetPersistentInt and -Float functions have been changed to work with the current DB plugins
The prototype 1.06 download has been updated.
* 05.12.2006: Updates to SQLite (0.0.2)
- Extended error reporting: Error message that happen at a certain point are more informative now.
- Fixed a bug that caused the COMMIT command to fail
- Fixed a bug that returned a row from an ealier result set if a new SELECT returned no row. Now it properly differentiates betweens empty results (the resultset is cleared, i.e. a non-succesful SELECT) and results that are just status codes (the resultset is untouched, i.e. an INSERT statement).
* 02.12.2006: Version: 188.8.131.52 (Prototype 1.06)
- Optionally disable the general protection fault window that Windows open when the server crashes. This allows the watchdogs to restart the server more reliably.
- New feature: Run batch file on restart. You can specify a cmd or bat file that NWNX calls before it restarts the server after a crash.
- Database dependent escaping of special characters. The way the SQL plugins now escape special characters like ' has completely changed. The functionality has been moved into the SQL plugins, and can process strings in all conceivable ways the underlying database supports. Also, there is no need to do the reverse operation now, i.e. the SQLDecodeSpecialChars functions could be removed. All-in-all, this should be at least 12 times faster than the previous nwscript-based method, and more reliable as well.
- Fix for gamespy restart bug, which caused the gamespy watchdog to not properly restart the server.
- Support for multi-resultset statements, including calls to stored procedures. Only the MySQL plugin supports this feature so far. You can execute multiple statements (separated with semi-colons) with one SQLExecDirect call, and then read back each result set with SQLFetch("NEXT"). This is actually a side effect of supporting calls to stored procedures !
* 26.11.2006: Version: 184.108.40.206 (Prototype 1.05)
- Process watchdog implemented
- Gamespy watchdog implemented
- nwnx.ini file has new options for the watchdogs
- Service mode finalized. NWNX can now run as a service !
- Sourcecode published as subversion repository
* 18.11.2006: Version: 220.127.116.11 (Prototype 1.04)
- MySQL plugin released
- Timer plugin + include file released
- New function SQLGetAffectedRows() returns the number of rows that were affected by
the last INSERT, UPDATE, or DELETE operation.
- INSERT, UPDATE, and DELETE no longer overwrite the active resultset.
- New functions NWNXGetPluginSubClass, NWNXGetPluginVersion, and NWNXGetPluginDescription for getting additional data on a plugin; new include file nwnx_include provides easy access to these functions
* 12.11.2006: Version: 18.104.22.168 (Prototype 1.03)
- Fixed a crash situation on player exit
- New functions for querying NWNX and plugin status: NWNXInstalled, NWNXGetPluginCount, NWNXGetPluginClass
* 11.11.2006: Version: 22.214.171.124 (Prototype 1.02)
- Rewrote and optimized parts of sql_include und xp_sqlite
- SQLInit() function is no longer necessary and thus has been removed
- Fetching resultsets with SQLFetch() is now 25% faster
- Fetching columns with SQLGetData() is now 25% faster
- SQLGetData() retrieves columns directly from the SQL plugin, thus eliminating the need for a special separator character
- There is no longer a size limit for result set rows, since columns are fetched individually
- New function SQLGetDataText() for retrieving large columns (e.g. 1024 bytes, no hard limit)
* 05.11.2006: Version: 126.96.36.199 (Prototype 1)
- Initial release of first prototype version