Player Resource Consortium

 

Author Topic: Upgrade a module with PRC 3.3g to PRC 3.5  (Read 9164 times)

0 Members and 1 Guest are viewing this topic.

August 28, 2012, 03:08:13 AM

I am trying to upgrade a module that uses PRC 3.3g to the PRC 3.5 version. The module is the LOTR - Finding Smeagol PW at http://nwvault.ign.com/View.php?view=Modules.Detail&id=6096

What I tried was to upgrade my version of NWN to PRC 3.5, then open the module in the toolset and recompile the scripts using the PRC compiler. Everything worked fine and the module seems to work fine with PRC 3.5.

Except, a tester created a Scout in the PRC Character Creator and played it on the module up to level 12 (Scout-6 & Bowman-6). He then exited and came back the next day to continue. As soon as he selects that character, the server crashes. However, if we load up the level 1 character, we can use DM to level it back to 12 and it plays fine.

But if he exits and tries to load the re-levelled character again, it will crash the server again.

I converted  a leveller module (Halls of Epic Training) to PRC 3.5 using PRCModuleUpdater and it can load the same character without crashing.

So I am starting to suspect that the PW module has not been properly upgraded to PRC 3.5.

Anybody have any thoughts?



August 28, 2012, 10:09:41 AM
Reply #1

Have you looked at the server logs?
HEATSTROKE


August 28, 2012, 03:05:03 PM
Reply #2

Just a bit of background - I have very little experience running a server or working in the toolset. I thought upgrading this module would be relatively straightforward and solve a number of problems that we were having with PRC3.3g.

Server log says:

[Tue Aug 28 09:55:35] Loading Module: LOTR-FS-169-CEP169-PRC35-05
[Tue Aug 28 09:55:52] Removing old PRC version databases
[Tue Aug 28 09:55:53] Module 2da cache fingerprint: LOTR - Finding Smeagol_72_1629337002
[Tue Aug 28 09:55:53] Starting to load 2da cache object from prc_datac1
[Tue Aug 28 09:55:53] WARNING: Unable to load 2da cache object (CacheChest) from prc_datac1
Connection Attempt made by Algran Firog
[Tue Aug 28 09:56:33] Algran Firog  Joined as Player 1

Then the server crashes. The server is running on Linux, and in the system log it says:

[ 3768.761270] show_signal_msg: 48 callbacks suppressed
[ 3768.761273] nwserver[3450]: segfault at 158 ip 00000000081ec961 sp 00000000ffad8510 error 4 in nwserver[8048000+2e7000]

Thanks.


August 29, 2012, 04:56:14 PM
Reply #3

In nwnplayer.ini, I set:

Enable Logging=1

and the server log now has a bunch more information. The last few lines are:

   [1] Object: 7ffffffd, Running Script: prc_onhb_indiv
   [2] Object: 7ffffffd, Running Script: race_hb
   [2] Object: 7ffffffd, Running Script: prc_scout
   
  • Object: 0, Running Script: hif_onacquireite
  • [1] Object: 0, Running Script: acquireditem_tag
       
  • Object: 0, Running Script: hif_onacquireite
  • [1] Object: 0, Running Script: acquireditem_tag

    Which seems to indicate to me that it is failing somewhere in the prc_scout script. I took a look at that script in the editor and noticed there are DEBUG statements.

    How do I turn on PRC DEBUG to get more information dumped into the Log?

    Thanks
« Last Edit: August 29, 2012, 06:49:20 PM by DoiganDoRight »


August 30, 2012, 09:59:20 AM
Reply #4

Set PRC_DEBUG to 1 in your module variables.

Look in prc_inc_switch.nss for more info.

HEATSTROKE


August 30, 2012, 05:29:03 PM
Reply #5

OK I loaded that character with PRC_DEBUG set to 1 - the log is attached.

One other data point is that I created a fighter in that module and played to level 2 where I selected Scout as the class. I then exited the module and loaded up that character without any problems. I exited again and re-started the server. I then tried to load that character again and it crashed the server.

So the server has to be restarted for it to crash when the Scout is reloaded.

I hope someone can figure this out.



August 30, 2012, 09:33:56 PM
Reply #6

OK I loaded that character with PRC_DEBUG set to 1 - the log is attached.

One other data point is that I created a fighter in that module and played to level 2 where I selected Scout as the class. I then exited the module and loaded up that character without any problems. I exited again and re-started the server. I then tried to load that character again and it crashed the server.

So the server has to be restarted for it to crash when the Scout is reloaded.

I hope someone can figure this out.

What DB are you using?

Also, do you mind trying an older version of nwnx_funct.dll?  The one with the latest server pack has been causing odd issues. (My PW won't even start with the current dll).

« Last Edit: August 30, 2012, 09:36:00 PM by DM Heatstroke »
HEATSTROKE


August 30, 2012, 10:37:38 PM
Reply #7

Thanks,

I think it is just using the standard NWN DB - I don't have MySQL or anything like that running.

The server is running on Linux, so it is not using nwnx_funct.dll, and I did not install the PRC Server Pack.

And I don't have a Windows box handy that I could use to test it. I might be able to round one up eventually, but I don't see why that would make a difference - all the other class characters we have tried so far don't crash the server - only Scouts so far.



August 31, 2012, 10:08:44 AM
Reply #8

Thanks,

I think it is just using the standard NWN DB - I don't have MySQL or anything like that running.

The server is running on Linux, so it is not using nwnx_funct.dll, and I did not install the PRC Server Pack.

And I don't have a Windows box handy that I could use to test it. I might be able to round one up eventually, but I don't see why that would make a difference - all the other class characters we have tried so far don't crash the server - only Scouts so far.

I didn't know you could even run the PRC on a standalone server without using NWNx2.

HEATSTROKE


August 31, 2012, 02:44:34 PM
Reply #9

I didn't know you could even run the PRC on a standalone server without using NWNx2.

My group has been running this module with PRC and no NWNx2 as a private server on and off for the past 6 years or so. Seems to work fine (except for this pesky Scout situation).

It might become a performance issue if you're running it for a large number of players, but for 4 - 6 players it works fine.

Have you had a chance to look at the log? Does it give any hints as to what may be going on?

Thanks


August 31, 2012, 11:49:15 PM
Reply #10

Have you had a chance to look at the log? Does it give any hints as to what may be going on?

Yes I did & no I didn't see anything that stood out to me.  Is there an ODBC log?
HEATSTROKE


September 01, 2012, 03:24:56 PM
Reply #11

Yes I did & no I didn't see anything that stood out to me.  Is there an ODBC log?

There is no ODBC log - ODBC is not being used - it is just the default dbf files being used.

Can we go back to the beginning for a moment? Is the method that I used to upgrade the module from PRC 3.3g to PRC 3.5 the correct way to do it?

To recap, I have a module that was setup and working with CEP1 and PRC 3.3g with just the default Bioware database being used and no NWNx2 being used.

I then upgraded my installation to use PRC 3.5 files (including prcc1.hak). I opened the module in the toolset and Saved As a different name. I then ran the PRC compiler and all files rebuilt without any errors. I then saved the module and started running it as a standalone server.

Is that the correct method to upgrade from PRC 3.3g to PRC 3.5?

Thanks



September 01, 2012, 08:19:47 PM
Reply #12

There is no ODBC log - ODBC is not being used - it is just the default dbf files being used.

Can we go back to the beginning for a moment? Is the method that I used to upgrade the module from PRC 3.3g to PRC 3.5 the correct way to do it?

To recap, I have a module that was setup and working with CEP1 and PRC 3.3g with just the default Bioware database being used and no NWNx2 being used.

I then upgraded my installation to use PRC 3.5 files (including prcc1.hak). I opened the module in the toolset and Saved As a different name. I then ran the PRC compiler and all files rebuilt without any errors. I then saved the module and started running it as a standalone server.

Is that the correct method to upgrade from PRC 3.3g to PRC 3.5?

Thanks

Looks right.  Did you remerge the 2da files in your top hak, if any?
HEATSTROKE


September 01, 2012, 10:31:34 PM
Reply #13

Looks right.  Did you remerge the 2da files in your top hak, if any?

Oh-oh.  :o

There is a "top merge hak" from the last time I upgraded the module (to PRC 3.3g), but this time around I did not remerge 2da files into it. Frankly because I have forgotten what I actually did a number of years ago to create that "top merge hak" and everything seemed to be working - well until this Scout crash happened.  :(

So .....

If you would be so kind as to jog my memory of what I actually need to do to upgrade the "top merge hak", I'd be most appreciative - and maybe we can solve this pesky Scout situation.

If it helps at all, I have been doing some more debugging, and I had come to the conclusion that the module crashes when trying to determine if the Scout has moved in the last round in order to determine whether Skirmish bonuses are deemed or not (this seems to be an EventHook that is added dynamically and executed onHeartbeat). When the module crashes, the hif_onenter script has already been completed.

Thanks


September 02, 2012, 03:53:00 PM
Reply #14

If you would be so kind as to jog my memory of what I actually need to do to upgrade the "top merge hak", I'd be most appreciative - and maybe we can solve this pesky Scout situation.

Here is how I do it.

1.) Make a backup of your original 3.3 top hak.

2.) Make a folder & extract your 3.3 top hak into it, using NWHak.

3.) Make another folder & extract the PRC 3.5 2da files into it.

4.) Make a 3rd folder that will contain the merged 2da files.

5.) Figure out which files are in both folders, these will be the ones that need merging.

6.) Using Excimer's 2DA Combinulator, open each paired 2da file, merge them & write a new 2DA file to the 3rd folder.  I use the beta version.

7.) When you are done, put the contents of the 3rd folder into your top hak, overwriting any old files.

8.) I usually recompile my module at this point, but I'm not sure if it's 100% necessary.

Hope that helps!
« Last Edit: September 02, 2012, 04:36:39 PM by DM Heatstroke »
HEATSTROKE