logo logo

 Back to main page

The NWNX Community Forum

 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Suggestions Please

 
Post new topic   Reply to topic    nwnx.org Forum Index -> Scripts and Modules
View previous topic :: View next topic  
Author Message
Blayde Windwalker



Joined: 02 Jan 2005
Posts: 18

PostPosted: Tue Jan 04, 2005 21:08    Post subject: Suggestions Please Reply with quote

I am looking to install NWNX2 to support persistent chests, both bank vaults and item chests for personal houses and faction homes.

Can anyone suggest a mod/script to download that works with NWNX2 and 1.65?

Thanks.
Back to top
View user's profile Send private message
Manuel



Joined: 30 Dec 2004
Posts: 51

PostPosted: Tue Jan 04, 2005 23:13    Post subject: Reply with quote

Here's some scripts at the Vault. Scroll down to the Scripts section. Not sure if they are good or bad or somewhere in between. Likely all of the above. Anyone authored some of these or are using them? I understand that the Talus Speech System is quite popular.
Back to top
View user's profile Send private message
dguntner



Joined: 31 Dec 2004
Posts: 116

PostPosted: Wed Jan 05, 2005 5:31    Post subject: Reply with quote

Manuel wrote:
I understand that the Talus Speech System is quite popular.


I know I'd be using it if it only ran on Linux. Laughing

--Dave
Back to top
View user's profile Send private message
Blacksting



Joined: 03 Jan 2005
Posts: 107

PostPosted: Wed Jan 05, 2005 20:44    Post subject: Reply with quote

As much as NWNX might have some advantages in stability the easiest way to accomplish persistent chests is with StoreCampaignObject and RetrieveCampaignObject. Make chests with unique tags and use them as the "name" of the database and save the contents with Store (as well as a successive integer key pointing to the object key so Retrieve can easily cycle through the database.) If you want I can post the short scripts I use.

By the way... before the forums moved someone was talking about "hooking" the Store and Retrieve functions to make them more efficient. As it turns out RetrieveCampaignObject was done more than perfectly by Bioware and could not be improved upon (actually the NWNX version was twice as bad)...... but StoreCampaignObject was not. I am not sure what future improvements have been made on this hook.
Back to top
View user's profile Send private message
Earandel



Joined: 29 Dec 2004
Posts: 6

PostPosted: Wed Jan 05, 2005 21:08    Post subject: Reply with quote

Blacksting wrote:

By the way... before the forums moved someone was talking about "hooking" the Store and Retrieve functions to make them more efficient. As it turns out RetrieveCampaignObject was done more than perfectly by Bioware and could not be improved upon (actually the NWNX version was twice as bad)...... but StoreCampaignObject was not. I am not sure what future improvements have been made on this hook.


That's a pretty negative way to put it Smile

In reality, the hooked RCO calls were 0.00152 seconds slower on average, while the SCO calls were each 0.163 seconds faster. So when doing write and read calls, the difference in the reads is actually negligible when looking at the net gain.

That was also on a complete test module. The code for the test was not intended to be production quality at all. It was just a proof of concept - to demonstrate to myself that the approach was working and that there were performance gains. There's also the issue of shared resources that was brought up - the NWServer and MySQL engine running on the same machine.

But seeing as how the approach has been changed significantly, those numbers probably won't mean much in the end. Maybe the hooked functions will be faster, maybe they won't. The only way to know for sure is to test them when its done, an at that time, I'll have to look at the whol picture - read times, write times, file bloating issues, etc. to determine if the plug-in has merit.
Back to top
View user's profile Send private message Yahoo Messenger
Makzimia De Graf



Joined: 31 Dec 2004
Posts: 55
Location: San Diego CA.

PostPosted: Thu Jan 06, 2005 4:26    Post subject: Reply with quote

We actually went a lot further with our chests to solve an issue that arises constantly, an old bug that bioware never seemed to sort out... stuck lids!!! addicted2rpg our resident scripting guru made an autofix set of scripts. In conjunction with the NWNX2 / MySQL combo, we have virtually unbreakable chests now. The only remaining issue, and never did work out why, is TMI's if more than a certain number of stackables is placed in one.

As far as performance goes, if we were to use a DB per chest even, with having had well over 8,000 players drop things in chests over the last 17 mths biowares DB would have probably crapped out by now. I know it certainly did when put to use on other intensive stuff initially.

Having said all that, ANYTHING that makes the system run smoother, more reliably and faster is good in my view Smile gain me .0010 seconds each second for each player, and I would be happy still Very Happy
_________________
Makzimia De Graf

DM/Creator Island of Fredian
fredian.game-host.org:5123
Forums at http://castille.us/fredian/Forums
Back to top
View user's profile Send private message
Papillon
x-man


Joined: 28 Dec 2004
Posts: 1060
Location: Germany

PostPosted: Fri Jan 07, 2005 0:00    Post subject: Reply with quote

Blacksting wrote:

As it turns out RetrieveCampaignObject was done more than perfectly by Bioware and could not be improved upon (actually the NWNX version was twice as bad)...... but StoreCampaignObject was not. I am not sure what future improvements have been made on this hook.


The current performance of the NWNX object storage engine is as following:

283 scrolls in a chest, table pwobjdata which is like pwdata, just with a blob column.

MySQL Data path:
283x SetPersistentObject(scroll) = 234ms
Loop over the resultset, creating 283x scrolls = 297ms

ODBC Data path:
283x SetPersistentObject(scroll) = 266ms
Loop over the resultset, creating 283x scrolls = 330ms
Size on disk: 513KB (using MyISAM storage engine)

Bioware DB:
283x StoreCampaignObject(scroll) = 625ms
283x RetrieveCampaignObject() = 313ms
Size on disk: 2,20 MB

No storage: (just the function calls without any data written)
283x StoreCampaignObject(scroll) = 125ms
283x RetrieveCampaignObject() = 0ms (nothing created)

Specs: Athlon 3200+, local MySQL 4.1.7-nt, local NWN Client (reduced priority), and local NWN Server.
_________________
Papillon
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    nwnx.org Forum Index -> Scripts and Modules All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group