View previous topic :: View next topic |
Author |
Message |
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Mon Aug 05, 2013 1:14 Post subject: NWNX on Linux not INIT for me? |
|
|
Quote: |
NWN Extender v2.8-dev
RESET plugin registered.
CONNECT plugin registered.
MNX plugin registered.
FIXES plugin registered.
SERVERLIST plugin registered.
TWEAKS plugin registered.
EVENTS plugin registered.
AREAS plugin registered.
FUNCTIONS plugin registered.
FUNCSEXT plugin registered.
DEFENSES plugin registered.
NAMES plugin registered.
HAKS plugin registered.
DMACTIONS plugin registered.
OPTIMIZATIONS plugin registered.
CHAT plugin registered.
SYSTEM plugin registered.
RESMAN plugin registered.
VISIBILITY plugin registered.
PROFILER plugin registered.
WEAPONS plugin registered.
EXTEND plugin registered.
HASHSET plugin registered.
ODMBC_MYSQL plugin registered.
STRUCTS plugin registered.
TMI plugin registered.
FUNCS plugin registered.
SPELLS plugin registered.
* NWNX2 activated.
INIT(O): valid ret=0x08203e79
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
|
Those Failed Init messages continue for several hundred lines. (I think they may be generated each time nwnx areas was invoked.)
But I definitely called NWNX!INIT on the modLoad event - you can even see it above the Failed Messages here.
After these Failed Init messages, I get
Quote: |
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
FAILED: NWNX!INIT has not been initialized.
INIT(S): valid ret=0x082041ec
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!FETCH does not exist.
|
Quote: |
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
|
Can someone suggest a course of action?
I cant seem to find a nwnx include file for the odmbc plugin - so I dont know if I have the wrong plugin prefix etc - do I need to update my aps_include to use a different ODBC name etc
Also - what are the failed init messages- how do I fix? |
|
Back to top |
|
|
virusman
Joined: 30 Jan 2005 Posts: 1020 Location: Russia
|
Posted: Mon Aug 05, 2013 11:05 Post subject: |
|
|
Add SetLocalString(GetModule(), "NWNX!INIT", ""); to OnModuleLoad. You're only calling GetLocalObject. You need to call both.
ODBC!FETCH doesn't exist because ODBC failed to initialize. _________________ In Soviet Russia, NWN plays you! |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Mon Aug 05, 2013 11:09 Post subject: Ah ok |
|
|
Cool, I will try that tonight when I get home.
Can you explain the significance of the INIT?
It didnt seem to be required on Windows,
Also - do you know if the nwnx odbc stuff is otherwise the same as the windows odbc?
Just wondering if I need to change my aps_include file etc to use different variable names etc.
Just out of curiosity - what order should I call the INIT bit?
Eg
SetLocalString(GetModule(), "NWNX!INIT", "");
GetLocalObject(GetModule(),"NWNX!INIT");
or should it be the otherway around?
My work is gonna be cut out for me this week - as my server provider has told me that they are no longer hosting dedicated servers anymore, so I have to move from windows to linux (hosted on amazon ec2) - looks like nwnx plugins dont like Amazon Windows Instances - something to do with the virtualization I imagine - causes ntdll.dll to crash. |
|
Back to top |
|
|
virusman
Joined: 30 Jan 2005 Posts: 1020 Location: Russia
|
Posted: Mon Aug 05, 2013 13:43 Post subject: |
|
|
INIT calls are required because Linux NWNX hooks SetLocalString & GetLocalObject differently than it does on Windows (it has to get the correct caller address).
Order of INIT calls is irrelevant. _________________ In Soviet Russia, NWN plays you! |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Mon Aug 05, 2013 21:19 Post subject: |
|
|
Didn't seem to work,
Can you confirm if this is the latest nwnx app for Linux?
NWN Extender v2.8-dev
Im now calling both Set and Get for the
SetLocalString(GetModule(), "NWNX!INIT", "");
GetLocalObject(GetModule(),"NWNX!INIT");
In module load- but I still get the same INIT errors, and the same ODBC spam.
Suggestions?
Also noticing the logs aren't rotating - is that a windows only feature, or do I indeed have an old version of the app?
On mod load script as seen below
Quote: |
void main()
{
GetLocalObject(GetModule(), "NWNX!INIT");
SetLocalString(GetModule(), "NWNX!INIT","");
SetMaxHenchmen(3);
WriteTimestampedLogEntry("Setting Max Henchmen to 3.");
// Init placeholders for ODBC gateway
SQLInit();
// Init placeholders for chat gateway
InitSpeech();
SetModuleSwitch(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS ,TRUE);
int iCurrentTMI = GetTMILimit();
int iDesiredTMI = iCurrentTMI*8;
WriteTimestampedLogEntry("Changing TMI Limit from "+IntToString(iCurrentTMI)+" to be "+IntToString(iDesiredTMI));
SetTMILimit(iDesiredTMI);
DelayCommand(10.00,ExecuteScript("doarea_settings",OBJECT_SELF));
|
|
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Mon Aug 05, 2013 21:59 Post subject: |
|
|
Ok,
Looks like I needed to set the string value to be 1 to get it to register, this is what I now get.
................................................................
Server: Module loaded
INIT(O): valid ret=0x08203e79
INIT(S): valid ret=0x082041ec
* Library ODBC!SPACER does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
* Library ODBC!EXEC does not exist.
* Library ODBC!FETCH does not exist.
Segmentation fault (core dumped) |
|
Back to top |
|
|
virusman
Joined: 30 Jan 2005 Posts: 1020 Location: Russia
|
Posted: Tue Aug 06, 2013 0:08 Post subject: |
|
|
Check odbc logs for errors. _________________ In Soviet Russia, NWN plays you! |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Tue Aug 06, 2013 0:48 Post subject: |
|
|
ah
Looks like the odmbc plugin needs to be named odbc - I just assumed that it runs as is after the compile.
I did notice that the pre-compiled version that elven is hosting on his Jenkins site is a difference size than the one I compiled from the git sources.
Also - My resman is not reporting any resource detections.
Eg: When the demand occurs, on windows it normally said that the resource was located, and used (external vs internal)
On Linux, im not seeing any messages, only the startup one that says that its hooked the demand location etc, then nothing else.
Is the implementation different for nwnx resman on Linux? |
|
Back to top |
|
|
virusman
Joined: 30 Jan 2005 Posts: 1020 Location: Russia
|
Posted: Tue Aug 06, 2013 11:22 Post subject: |
|
|
Baaleos wrote: | Also - My resman is not reporting any resource detections.
Eg: When the demand occurs, on windows it normally said that the resource was located, and used (external vs internal)
On Linux, im not seeing any messages, only the startup one that says that its hooked the demand location etc, then nothing else.
Is the implementation different for nwnx resman on Linux? | Set debuglevel to a higher number (3 or 4). _________________ In Soviet Russia, NWN plays you! |
|
Back to top |
|
|
|