NWN-FF is the fastest solution available on NWN to access data into a MySQL DataBase, and it also provides many additionnal unique features.
NWN-FF 4.1.0 is a set of complementary projects with all sources included. An erf and a demo module are also provided. It's fully compatible with APS/NWNX 2 and can use NWNX 2 plugin.
It is very easy to start with NWN-FF: the documentation has been rethought, and you don't need to worry about database or table creation; NWN-FF will handle that for you.
If you want to use a real database in you NWN module, then take this: it's fast,it's easy to use, and it's free :)
I hope you'll like it.
FF
Please share your experience on NWN-FF Bioware guild: http://nwn.bioware.com/guilds_registry/viewguild.html?gid=7729
5.6.2005: v 4.0.15 Thanks to Garrath suggestion, SQLDecode/SQLEncode changed to work faster: SQLEncode is as slow as before, but SQLDecode is now very fast (it does nothing at all). If you have existing tables which are not NWN-FF standard, and if you use fields with texts that may have quotes in them (or ?~?), then you may need to edit the end of ff_buildtable.nss and add some new FixQuotes instruction to convert those fields into the new NWN-FF 4.0.15+ format. If you may prefer to do it manually, you may use this SQL instruction for each text field that may have quotes (replace TableName and FieldName with the proper value). In that case, do it just before launching the new version of your module: UPDATE TableName SET FieldName = REPLACE(FieldName,'~', '\'') WHERE LOCATE('~', FieldName)>0 Some bugs reported by Hacknisty are fixed (errors in a couple of SQL instructions). The following nss files have changed: aps_include.nss, ff_buildtable, ff_include The option [FFSpeech] Debug will now trace the detail of all speech only for a Debug value of 2 or higher. (before, was 1 or 2 for more details). Here is the meaning for each value: 0 = only critical errors traced. 1 = details on Interface selection and some important warnings. 2 = detailed traced, including all text contents. 3 = very detailed traces. Some new tries to avoid that @@@ error message when NWServer.exe is restarted. Unfortunately this message still sometimes occurs. A new instruction NWNX!ODBC!DEBUG. This instruction will allow you to change the debug level of nwn-MySQL.dll or nwn-ODBC.dll from the scripts. It may be useful for instance when you want to get full debug information for only some specific parts of your script. A value of 0 will put the old value back ([MySQL] Debug). The instruction NWNX!DLL introduced in version 4.0.14 didn?t work properly. It?s now fixed. The plug-ins dll had sometimes a wrong name when compiled (nwnx-* instead of nwnx_*). This is fixed. When no module activity is detected, the server still do not restart now until CPU usage drops to 0%.
Posted by FastFrench at 2005-06-0702:11:42
7.6.2005: v 4.0.15 Thanks to Garrath suggestion, SQLDecode/SQLEncode changed to work faster: SQLEncode is as slow as before, but SQLDecode is now very fast (it does nothing at all ?º ). If you have existing tables which are not NWN-FF standard, and if you use fields with texts that may have quotes in them (or ¡§~¡¨), then you may need to edit the end of ff_buildtable.nss and add some new FixQuotes instruction to convert those fields into the new NWN-FF 4.0.15+ format. If you may prefer to do it manually, you may use this SQL instruction for each text field that may have quotes (replace TableName and FieldName with the proper value). In that case, do it just before launching the new version of your module: UPDATE TableName SET FieldName = REPLACE(FieldName,'~', '\'') WHERE LOCATE('~', FieldName)>0 Some bugs reported by Hacknisty are fixed (errors in a couple of SQL instructions). The following nss files have changed: aps_include.nss, ff_buildtable, ff_include The option [FFSpeech] Debug will now trace the detail of all speech only for a Debug value of 2 or higher. (before, was 1 or 2 for more details). Here is the meaning for each value: 0 = only critical errors traced. 1 = details on Interface selection and some important warnings. 2 = detailed traced, including all text contents. 3 = very detailed traces. Some new tries to avoid that @@@ error message when NWServer.exe is restarted. Unfortunately this message still sometimes occurs. A new instruction NWNX!ODBC!DEBUG. This instruction will allow you to change the debug level of nwn-MySQL.dll or nwn-ODBC.dll from the scripts. It may be useful for instance when you want to get full debug information for only some specific parts of your script. A value of 0 will put the old value back ([MySQL] Debug). The instruction NWNX!DLL introduced in version 4.0.14 didn¡¦t work properly. It¡¦s now fixed. The plug-ins dll had sometimes a wrong name when compiled (nwnx-* instead of nwnx_*). This is fixed. When no module activity is detected, the server still do not restart now until CPU usage drops to 0%.
Posted by Graftark at 2005-05-1313:50:42
I have just tried to get NWN-FF 4.0.14 working with a new module. I have used 4.0.12 before... I think thats what it was and had no problems implementing it. Now it seems that the ff_include code is broken. Here's what I got... Error I am getting when I compile any script that uses this file: ff_include.nss(140): ERROR: PARSING VARIABLE LIST This is the part of "ff_include" the error is tied to. line 140 is: object oLocal = GetNWNMySQLWP(); int SQLLocalFetch() { object oLocal = GetNWNMySQLWP(); SetLocalString(oLocal, "NWNX!ODBC!FETCH", GetLocalString(oLocal, "NWNX!ODBC!SPACER")); LOCAL_BUFFER = GetLocalString(oLocal, "NWNX!ODBC!FETCH"); if (GetStringLength(LOCAL_BUFFER) > 0) return SQL_SUCCESS; else return SQL_ERROR; }
Posted by Graftark at 2005-05-1313:36:00
I have just tried to get NWN-FF 4.0.14 working with a new module. I have used 4.0.12 before... I think thats what it was and had no problems implementing it. Now it seems that the ff_include code is broken. Here's what I got... Error I am getting when I compile any script that uses this file: ff_include.nss(140): ERROR: PARSING VARIABLE LIST This is the part of "ff_include" the error is tied to. line 140 is: object oLocal = GetNWNMySQLWP(); int SQLLocalFetch() { object oLocal = GetNWNMySQLWP(); SetLocalString(oLocal, "NWNX!ODBC!FETCH", GetLocalString(oLocal, "NWNX!ODBC!SPACER")); LOCAL_BUFFER = GetLocalString(oLocal, "NWNX!ODBC!FETCH"); if (GetStringLength(LOCAL_BUFFER) > 0) return SQL_SUCCESS; else return SQL_ERROR; }
Posted by FastFrench at 2005-04-1504:09:00
Two versions in a row... so here is version 4.0.14. 15.4.2005: v 4.0.14 New function: NWNX!DLL that allows to check if a given plug-in is available. I?ve found and corrected a bug in NWNx-FFSpeech. Now it should better take into account the NIC_IP option in [FFSpeech] section. I forgot to mention another change in 4.0.13: BinTracer, the application that you can use to display binary performance traces (*.bi4 files), as a much better interface now.
Posted by FastFrench at 2005-04-1414:24:00
Oh, by the way, I'm glad to see that Avlis team likes NWN-FF so much that they copy some of the old features of NWN-FF in APS/NWNX. A shame that it took them over 1 year to do it, but I confess my sources were not very well commented. Too bad they forgot such tiny details on the credits... but well, doesn't matter. Just an idea: when you copy or reproduce a feature, please try to keep the same API to be used from NWN Script. It may help the builders to have some kind of standard and switch from one product to the other. One last word about NWN-FF 4.0.13: I strongly suggest to upgrade MySQL to the latest release version (currently 4.1.11), as it brings some nice and more powerfull instructions.
Posted by FastFrench at 2005-04-1414:14:00
New with version 4.0.13: 13.4.2005: v 4.0.13 Some parts of the code rewritten to be cleaner (no compiler warnings anymore, smaller code with less redundancy) and faster (some more optimizations). Now fully support MySQL 4.1, with all new functionalities coming with it (subqueries?). Also the script part should be much more compatible with non-MySQL Databases (Access, PostgresSQL? via ODBC). Some improvements in the monitoring tools, to make the parameters more obvious and coherent. Documentation: More points covered within the F.A.Q. and a complete new chapter ?When does the monitoring tool decide to restart the NWN Server?? Script changes: ff_pc_loops.nss and ff_inc_options.nss: added a new option, FF_PLAYERFILE_SAVE, used to avoid the periodical saving of the players files (mainly for local vault servers). ff_inc_other.nss: removed ff_GetResRef(object oItem); declaration (was never defined or used). Thanks to ?The Guardian of Orlanthia? for reporting this. Aps_include.nss, ff_include.nss, ff_inc_server.nss and ff_inc_options.nss: added the options, FF_MYSQL_4_1, that will enable specific MySQL 4.1 optimizations and FF_MYSQL that (if set to 0) will replace all MySQL specific instructions with more standard (but slower) equivalents. ff_inc_options, ff_on_cl_enter.nss, ff_buildtable.nss, ff_inc_server.nss: FF_NO_BAN option. If you set this one, NWN-FF won?t ban or reject any player, for any reason. Use this one at your own risk: you renounce to all NWN-FF coherency checking by setting this option.
Posted by FastFrench at 2005-04-1414:14:00
New with version 4.0.13: 13.4.2005: v 4.0.13 Some parts of the code rewritten to be cleaner (no compiler warnings anymore, smaller code with less redundancy) and faster (some more optimizations). Now fully support MySQL 4.1, with all new functionalities coming with it (subqueries?). Also the script part should be much more compatible with non-MySQL Databases (Access, PostgresSQL? via ODBC). Some improvements in the monitoring tools, to make the parameters more obvious and coherent. Documentation: More points covered within the F.A.Q. and a complete new chapter ?When does the monitoring tool decide to restart the NWN Server?? Script changes: ff_pc_loops.nss and ff_inc_options.nss: added a new option, FF_PLAYERFILE_SAVE, used to avoid the periodical saving of the players files (mainly for local vault servers). ff_inc_other.nss: removed ff_GetResRef(object oItem); declaration (was never defined or used). Thanks to ?The Guardian of Orlanthia? for reporting this. Aps_include.nss, ff_include.nss, ff_inc_server.nss and ff_inc_options.nss: added the options, FF_MYSQL_4_1, that will enable specific MySQL 4.1 optimizations and FF_MYSQL that (if set to 0) will replace all MySQL specific instructions with more standard (but slower) equivalents. ff_inc_options, ff_on_cl_enter.nss, ff_buildtable.nss, ff_inc_server.nss: FF_NO_BAN option. If you set this one, NWN-FF won?t ban or reject any player, for any reason. Use this one at your own risk: you renounce to all NWN-FF coherency checking by setting this option.
Posted by Anonymous at 2005-03-3116:13:00
Has anyone considered enhancing the current user interface? I have to say it's the one thing I don't like about NWN-FF along with some of the language issues. No offense meant for this is certainly a technical marvel, but status and error messages are just not well presented or articulated nor is the documentation the cleareast (which makes it difficult to understand at times). I just think it could use a bit of polish to match what the folks at Avlis accomplished with NWNX. Given the guild membership numbers I'm seeing (168 at last count), I think there is likely enough participation here to give this tool a nice face lift. :)
Posted by Confused-cious at 2005-03-3115:46:00
Ok, I've gotten to the bottom of the problem. It was the NWN-FF Speech module. Not sure why or what it was doing, but disabling the speech option, disabling the dead speaking option, and removing the speech dll remedied the crashing. Now all is well. I know the documentation mentioned the speech system not working properly in-game IF the NWN server and the NWN client were on the same machine, but is there a technical limitation as well that prevents this from functioning? Bear in mind that NWNServer crashed as it attempted to LOAD the module so I never had a chance to run or connect with the client. Seems like it's a bug with the speech dll. Anyway, that's not a critical component. I'm just thrilled it's finally working. Cheers.