Player Resource Consortium
Neverwinter Nights => Help => Topic started by: KenquinnTheInsaneOne on June 08, 2010, 01:08:33 PM
-
The ConvoCC is not working on my Linux server. The conversation starts up and I click continue however it just give me the end dialog option. I turned on the PRC_DEBUG switch so here is the output before and after I click continue.
Edit: I am using PRC 3.3h and not one of the RC.
Log Before Continue (http://kenquinn.pastebin.com/FdeMd9nQ)
Log After Continue (http://kenquinn.pastebin.com/k2NzjDcb)
Things I have ruled out:
NWNX is installed and running
Leto is installed and running
MySQL is installed and working correctly via NWNX ODBC and the server can access the database.
The same hak/hif files are on both the server and my computer(I just did a file comparison, byte size matches and the FTP client thinks their their same).
Any ideas on the cause?
-
Could you post your nwnx_odbc log as well?
The 'only option = end dialog' bug indicates database problems.
-
NWNX2 ODBC2 version 0.3.2 for Linux.
(c) 2005-2006 dumbo (dumbo@nm.ru)
(c) 2006-2008 virusman (virusman@virusman.ru)
o SCO located at 82d9c44.
o RCO located at 82d9b60.
o Connect successful.
o Got request: SELECT rowid, data FROM prc_cached2da WHERE file = 'gender' AND columnid = 'name' AND rowid <= 1
o Sent response (5 bytes): 0¬156
o Sent response (5 bytes): 1¬157
o Sent response (0 bytes):
o Shutdown.
There you go
-
So it's not a database problem :/
How fast is your computer? Could you check database usage with other scripts?
Check out how the attached file will work for you - put it in a top hak (prc_2das.hak will be fine for testing ;) ). This should help if your computer is too fast for NWN.
-
It's not on my computer its a on a rented Linux cloud. I am not sure how much CPU power can be diverted to it. I can ask the person who rents the server if it is needed.
I packed your fix into the prc_d2as.hak(checking that the default hak packer did put the compiled script in it) and uploaded it to the server. The exact same thing happened as before.
What do you mean by check database usage with a script? Run a test with something that needs MySQL to work and does a fair number of calls?
If you did this is a copy of the ODBC log after using a MySQL vault system.
]NWNX2 ODBC2 version 0.3.2 for Linux.
(c) 2005-2006 dumbo (dumbo@nm.ru)
(c) 2006-2008 virusman (virusman@virusman.ru)
o SCO located at 82d9c44.
o RCO located at 82d9b60.
o Connect successful.
o Got request: SELECT enabled FROM banlist WHERE playerCD='********'
o Sent response (0 bytes):
o Got request: SELECT num FROM qptrack WHERE player='Kenquinn'
o Sent response (1 bytes): 6
o Got request: SELECT val FROM pwdata WHERE player='Kenquinn' AND tag='Kalie Jora' AND name='LastCDKey' AND ( NOW() < last + INTERVAL expire SECOND OR expire = 0 )
o Sent response (0 bytes):
o Got request: SELECT player FROM pwdata WHERE player='Kenquinn' AND tag='Kalie Jora' AND name='LastCDKey'
o Sent response (0 bytes):
o Got request: INSERT INTO pwdata (player,tag,name,val,expire) VALUES('Kenquinn','Kalie Jora','LastCDKey','********',0)
o Got request: SELECT val FROM pwdata WHERE player='Kenquinn' AND tag='Kalie Jora' AND name='Jailed' AND ( NOW() < last + INTERVAL expire SECOND OR expire = 0 )
o Sent response (0 bytes):
o Got request: SELECT player FROM pwdata WHERE player='Kenquinn' AND tag='Kalie Jora' AND name='LastCDKey'
o Sent response (8 bytes): Kenquinn
o Got request: UPDATE pwdata SET val='',expire=0 WHERE player='Kenquinn' AND tag='Kalie Jora' AND name='LastCDKey'
o Got request: SELECT enabled FROM banlist WHERE playerCD='********'
o Sent response (0 bytes):
o Got request: SELECT num FROM qptrack WHERE player='Kenquinn'
o Sent response (1 bytes): 6
o Got request: SELECT val FROM pwdata WHERE player='Kenquinn' AND tag='Moristin Nefzen' AND name='LastCDKey' AND ( NOW() < last + INTERVAL expire SECOND OR expire = 0 )
o Sent response (0 bytes):
o Got request: SELECT player FROM pwdata WHERE player='Kenquinn' AND tag='Moristin Nefzen' AND name='LastCDKey'
o Sent response (0 bytes):
o Got request: INSERT INTO pwdata (player,tag,name,val,expire) VALUES('Kenquinn','Moristin Nefzen','LastCDKey','********',0)
o Got request: SELECT val FROM pwdata WHERE player='Kenquinn' AND tag='Moristin Nefzen' AND name='Jailed' AND ( NOW() < last + INTERVAL expire SECOND OR expire = 0 )
o Sent response (0 bytes):
o Got request: SELECT resref,stack,charges,identified FROM bankvault2 WHERE player='Kenquinn' AND name=''
o Sent response (21 bytes): blackwillowsan¬1¬35¬1
o Sent response (17 bytes): dragonscale¬1¬0¬1
o Sent response (22 bytes): grayonyxdragbel1¬1¬0¬1
o Sent response (22 bytes): gray_treebracers¬1¬0¬1
o Sent response (22 bytes): hpy_itmbashbardb¬1¬0¬1
o Sent response (22 bytes): hpy_itmskelebook¬1¬0¬1
o Sent response (22 bytes): hpy_itmwizrunner¬1¬0¬1
o Sent response (18 bytes): nw_ashmto006¬1¬0¬1
o Sent response (17 bytes): soul_belt1c¬1¬0¬1
o Sent response (17 bytes): soul_belt1c¬1¬0¬1
o Sent response (20 bytes): soul_clothing2¬1¬0¬1
o Sent response (18 bytes): soul_dagger4¬1¬0¬1
o Sent response (18 bytes): soul_dagger5¬1¬0¬1
o Sent response (20 bytes): soul_gauntlet1¬1¬0¬1
o Sent response (22 bytes): soul_heavarmour1¬1¬0¬1
o Sent response (18 bytes): soul_staff1¬1¬50¬1
o Sent response (0 bytes):
o Got request: SELECT player FROM pwdata WHERE player='Kenquinn' AND tag='Moristin Nefzen' AND name='LastCDKey'
o Sent response (8 bytes): Kenquinn
o Got request: UPDATE pwdata SET val='',expire=0 WHERE player='Kenquinn' AND tag='Moristin Nefzen' AND name='LastCDKey'
o Shutdown.
-
Is it at all possible for you to try serving the module from a local Windows or Linux PC? Pulling at straws here but, maybe LETOScript doesn't like working thru virtualization?
-
I don't have a Linux box I can test it in Linux. So I did a test with SQLLite on my PC as I dont want to spend time setting up MySQL at the moment.
It worked perfectly on my PC.
I don't think its a issue with visualization and Leto as I had leto working before on the box. Theirt was a bug that cause it to sets each players HP per level to 0 instead of the max for the class but I recreated the issue on my PC and it was edited the chars just not in the way I intended.
The ODBC log file starts out the same as the Linux one however it gets past the gender fetch.
-
I don't have a Linux box I can test it in Linux. So I did a test with SQLLite on my PC as I dont want to spend time setting up MySQL at the moment.
It worked perfectly on my PC.
I don't think its a issue with visualization and Leto as I had leto working before on the box. Theirt was a bug that cause it to sets each players HP per level to 0 instead of the max for the class but I recreated the issue on my PC and it was edited the chars just not in the way I intended.
The ODBC log file starts out the same as the Linux one however it gets past the gender fetch.
One last thing that just crossed my mind. Could it be a case sensitivity issue?
Pulling at straws....
-
I had a similar problem when precaching the sql.out would fail before it finished importing all the data and usually the convo cc would do as you said. WE manually corrected the sql.out and reimported. Ive reported this one aboooooooout 3 times now : } its the typo in "hero'es" feast in spells 2da i think. I will check my logs later to see if i still have that patch we did.
-
@DM Heatstroke: Not a case sensitivity issues Windows and Linux uses the same case.
@dsabrae: If there was a typo in the 2da files I would think that the SQLLite precatcher would not work as wellas it did on my PC. If you do find the type can you please still post it?
I will try wiping and reloading the MySQL database sometime unless someone else has another idea.
Edit: Just did a fresh import no luck.
-
I had a similar problem when precaching the sql.out would fail before it finished importing all the data and usually the convo cc would do as you said. WE manually corrected the sql.out and reimported. Ive reported this one aboooooooout 3 times now : } its the typo in "hero'es" feast in spells 2da i think. I will check my logs later to see if i still have that patch we did.
I didn't modify or search & replace anything in 3.3h & I had no issues making the sql.out for either of the servers I have going . When I did have that issue it was strictly due to CEP's modifications to the placeables (which didn't actually need to be cached) & appearances.2das.
-
@DM Heatstroke: Not a case sensitivity issues Windows and Linux uses the same case.
OK, wasn't sure if it was an issue between the different NWN servers. I had the idea that if the classes.2da was calling for CLS_PRES_BARB & the script was named cls_pres_barb, it might have caused some issues. I've tried running a Linux server before, but I had to give it up cause KDE4 crashed on my every 5 minutes.
-
Just for the hell of it I tried 20 of the SQLLite commands that it inputs on my PC(MySQL uses the same syntax so its not an issue) and I get the exact same output on the Linux server as I get in my PC log file.
All of the fetch times were 0.0 seconds even with the .ncs file being in the prc_2das hak.
Edit: Also in the log file its spiting out prc_version = 3.3h rc2 while I am using PRC 3.3h
-
I had a similar problem when precaching the sql.out would fail before it finished importing all the data and usually the convo cc would do as you said. WE manually corrected the sql.out and reimported. Ive reported this one aboooooooout 3 times now : } its the typo in "hero'es" feast in spells 2da i think. I will check my logs later to see if i still have that patch we did.
That error was in healer spellbook, and in this version spellbooks are not cached because they are not used by ConvoCC. I really do try to fix every reported bug. Thank you dsabrae.
KenquinnTheInsaneOne, do you use 64 bit Linux? It just seems that NWN doesn't get the data from odbc plugin. Why? - I have no idea. The script for gender selection conversation is really simple one and I see no errors in it. I will try to write some debug code and post it here, maybe we can figure out what's wrong.
-
Ok, here is another script with some more debug messages. It uses direct NWNX commands so I think it's quite reliable. For clearer output turn prc_debug off. You should see something like that in nwserverlog1.txt:
[Thu Jun 10 15:18:13] xwarren2 (Q77MVHH9) Joined as Player 1
[Thu Jun 10 15:18:52] SLS :print /FirstName;print ' ';print /LastName;
[Thu Jun 10 15:18:52] SCRIPT >: %LETOTEST = q{servervault/xwarren2/lentelannen.bic}; print /FirstName;print ' ';print /LastName;close %LETOTEST;
[Thu Jun 10 15:18:54] SCRIPT <: Lente Lannen
[Thu Jun 10 15:19:58] SELECT rowid, data FROM prc_cached2da WHERE file = 'gender' AND columnid = 'name' AND rowid <= 1
[Thu Jun 10 15:19:58] NWNX_ODBC_FETCH row: 0¬156
[Thu Jun 10 15:19:58] SQL: RowID = 0
[Thu Jun 10 15:19:58] SQL: Data = Male
[Thu Jun 10 15:19:58] NWNX_ODBC_FETCH row: 1¬157
[Thu Jun 10 15:19:58] SQL: RowID = 1
[Thu Jun 10 15:19:58] SQL: Data = Female
[Thu Jun 10 15:20:06] xwarren2 Left as a Player (0 players left)
if there is nothing in 'NWNX_ODBC_FETCH row:' there is a problem with NWNX -> NWN communication (wrong NWNX version, unsupported by PRC?).
-
[Thu Jun 10 12:05:18] SLS :print /FirstName;print ' ';print /LastName;
[Thu Jun 10 12:05:18] SCRIPT >: %LETOTEST = q{/opt/nwn/ken/servervault/Kenquinn/rodorgeigerlson.bic}; print /FirstName;print ' ';print /LastName;close %LETOTEST;
[Thu Jun 10 12:05:18] SCRIPT <: Rodor Geigerlson
[Thu Jun 10 12:05:38] SELECT rowid, data FROM prc_cached2da WHERE file = 'gender' AND columnid = 'name' AND rowid <= 1
[Thu Jun 10 12:05:38] NWNX_ODBC_FETCH row: 0¬156
[Thu Jun 10 12:05:38] SQL: RowID = 0
[Thu Jun 10 12:05:38] SQL: Data =
[Thu Jun 10 12:05:38] NWNX_ODBC_FETCH row: 1¬157
[Thu Jun 10 12:05:38] SQL: RowID = 1
[Thu Jun 10 12:05:38] SQL: Data =
Interesting it is not fetching the second field. I run "SELECT rowid, data FROM prc_cached2da WHERE file = 'gender' AND columnid = 'name' AND rowid <= 1" manually into MySQL and it has the save behavior.
I do a second fetch to see if the gender data is missing entirely with SELECT data FROM prc_cached2da WHERE file = 'gender'
I get this output +---------------+
| data |
+---------------+
| GENDER_MALE |
| GENDER_FEMALE |
| GENDER_BOTH |
| GENDER_OTHER |
| GENDER_NONE |
| M |
| F |
| B |
| O |
| N |
| **** |
| **** |
| **** |
| **** |
| **** |
| 156 |
| 157 |
| 4771 |
| 201 |
| 202 |
+---------------+
That is every field from the gender.2da file so the data is their.
The server is Fedora 10 64 bit.
-
Now, there is nothing wrong with your NWNX, but...
My log:
[Thu Jun 10 15:19:58] NWNX_ODBC_FETCH row: 0¬156
[Thu Jun 10 15:19:58] SQL: RowID = 0
[Thu Jun 10 15:19:58] SQL: Data = Male
Your log:
[Thu Jun 10 12:05:38] NWNX_ODBC_FETCH row: 0¬156
[Thu Jun 10 12:05:38] SQL: RowID = 0
[Thu Jun 10 12:05:38] SQL: Data =
you did get the data from database, but the game can't convert that data to a text string. Now, i see two reasons why this would happen:
1. GetStringByStrRef() function doesn't work for some reason (engine function, can't help you if this is the case)
2. you've edited the default dialog.tlk file
Just to make it 100% sure, could you test the file i've attached, that's probably the last one...
-
Its alive its alive!!!!!
I found the issue when you mentioned a modified dialog.tlk file being able to cause the issue. I took a quick look at the directory I run the server out of it has no dialog.tlk file. I put one in and it works.
Thank you very much for all your time an effort on this issue. I apologize for not noticing this earlier.
-
Its alive its alive!!!!!
I found the issue when you mentioned a modified dialog.tlk file being able to cause the issue. I took a quick look at the directory I run the server out of it has no dialog.tlk file. I put one in and it works.
Thank you very much for all your time an effort on this issue. I apologize for not noticing this earlier.
Great!!!
I'm happy I could help :)
-
Its alive its alive!!!!!
I found the issue when you mentioned a modified dialog.tlk file being able to cause the issue. I took a quick look at the directory I run the server out of it has no dialog.tlk file. I put one in and it works.
Thank you very much for all your time an effort on this issue. I apologize for not noticing this earlier.
Heh, so you were missing custom content after all!
-
Its alive its alive!!!!!
I found the issue when you mentioned a modified dialog.tlk file being able to cause the issue. I took a quick look at the directory I run the server out of it has no dialog.tlk file. I put one in and it works.
Thank you very much for all your time an effort on this issue. I apologize for not noticing this earlier.
Heh, so you were missing custom content after all!
That is not custom content its a stock game file.
-
Its alive its alive!!!!!
I found the issue when you mentioned a modified dialog.tlk file being able to cause the issue. I took a quick look at the directory I run the server out of it has no dialog.tlk file. I put one in and it works.
Thank you very much for all your time an effort on this issue. I apologize for not noticing this earlier.
Heh, so you were missing custom content after all!
That is not custom content its a stock game file.
Oh I didn't catch that, you were missing the dialog.tlk, not the PRC tlk.
-
A module wont even start without the tlk a module needs.
-
A module wont even start without the tlk a module needs.
Well I'm glad you got it figured out. Have you been able to make a PC yet?
-
Yes I have why do you ask?
-
Yes I have why do you ask?
Just checking really. Going to post the server here when it's done?
-
If I ever get it ready