View previous topic :: View next topic |
Author |
Message |
nwnlist
Joined: 14 Dec 2012 Posts: 6
|
Posted: Mon Dec 17, 2012 11:10 Post subject: |
|
|
Quote: | Skywing, thanks for getting the NWN1 version up and running!! |
Would there be any interest in a NWN1 version of Scry? I completely forgot about you guys, but it would literally take a file copy and one backspace to ... you know what? I'm going to do that first thing tomorrow morning. _________________ NWNList Scry |
|
Back to top |
|
|
eeriegeek
Joined: 07 Jan 2008 Posts: 59
|
Posted: Mon Dec 17, 2012 16:52 Post subject: |
|
|
nwnlist wrote: | Would there be any interest in a NWN1 version of Scry?. |
I would certainly think so! I was wondering if that was in the plans.
I've set up a cgi script that dumps the master server records here: NWN1 NWN2
But it's not as civilized and doesn't have a cool logo and domain name. |
|
Back to top |
|
|
nwnlist
Joined: 14 Dec 2012 Posts: 6
|
Posted: Mon Dec 17, 2012 18:39 Post subject: |
|
|
Edit: Looks great - I was about to ask you about mapping the GameType integer to each category, but it looks like there's already documentation on that! NWN1 Scry is up. _________________ NWNList Scry |
|
Back to top |
|
|
Nightrise
Joined: 15 Feb 2012 Posts: 2
|
Posted: Mon Dec 17, 2012 23:56 Post subject: |
|
|
Quick question Skywing - others might be wondering the same. Is there a chance that the Room chats will be restored once we got a fully-integrated client-side version functional?
And if its possible - could these chats be potentially accessible via web? Maybe irc ? |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Thu Dec 27, 2012 13:05 Post subject: |
|
|
question:
Has the nwnx plugin been released that automatically sets the server to report to the new master server URL?
(for NWN1)
Or is everyone using host file updates?
How do we specify a URL for the master server record as well |
|
Back to top |
|
|
eeriegeek
Joined: 07 Jan 2008 Posts: 59
|
Posted: Thu Dec 27, 2012 19:52 Post subject: |
|
|
Baaleos,
As far as I know, everyone that has gotten their NWN1 server registering with the new substitute master server is using a DNS entry. I think Zebransky was looking at updating the fixes plugin to do this automatically, but I do not know how that is going. Note that that approach would also require using NWNX and will need to work for both linux & windows (& mac ?) servers, so it's a bit more complicated.
The site URL listed after the module name in this NWN1 server list which I wrote to dump the server records and test the web services API is "scraped". To find a URL I just scan the server description and module description fields (in that order) and take the first thing that looks like a well formed URL (i.e. "http://" followed any text that doesn't not look like a URL ). The source code for the list CGI is on github.
The parallel NWN2 server list here is handled differently, the site URL is taken directly from a new URL field that NWN2 allows module builders to specify that was added in NWN2. At the moment, I just create an anchor (link) with the unaltered contents of the field. Note that some folks have just have a DNS record there, which works in the NWN2 client (as it does in many web browsers that assume http://). I will probably update the NWN2 list to add http:// to URL fields without it so more of the links will work without admins needing to add http:// to their URLs themselves.
At at http://www.nwnlist.com they are linking the module name to the site URL using the new URL field for NWN2 servers, presumably adding http:// to URL fields without it. Since that field is empty for NWN1, there is no live link on that site.
At the moment (for NWN1 only) I would recommend having a fully quallified (http:// ...) URL in your ServerDescription.txt file, since that is fairly reliable to find. Perhaps at some later time we could define a special tag for the site url if it seems needed.
Side note: It looks like the NWN server truncates both the server description and module description to about 256 characters before sending them to the master server. |
|
Back to top |
|
|
addicted2rpg
Joined: 01 Aug 2008 Posts: 106
|
Posted: Sun Dec 30, 2012 22:50 Post subject: |
|
|
I am very appreciative to all the people who have worked on master server communications technology and NWN protocol over the years (you all know who you are ).
While I would love to see this in-game as well in the client listing for NWN1, I am happy a web solution is available so we know where we can direct-connect to.
AFAIK Baaleos, I think PW's are registering here. |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Mon Dec 31, 2012 12:41 Post subject: |
|
|
Hi Addicted,
True - looks like we can register there.
But it seems that by changing the hosts file on my servers - they are automatically being added. |
|
Back to top |
|
|
Baaleos
Joined: 02 Sep 2007 Posts: 830
|
Posted: Mon Dec 31, 2012 13:16 Post subject: vaultster |
|
|
eeriegeek -
Do you think it would be possible to add some extra custom fields that can be read from the master server?
Im working on a side project of my own -
It would be immensely useful to me - if it were possible to retrieve a vaultster port from the master server webService API.
Eg- Default to 0 for no Vaultster.
Im working on a central Hub Server - that could potentially act like a docking station, allowing people to travel from
Server A - > The Hub -> Server B
Vaultster has inbuilt security - so it shouldnt be a security risk:
The host needs to specify a host to accept characters from:
So at the moment, only opt in servers would use this feature. |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Fri Jan 04, 2013 3:08 Post subject: |
|
|
Publishing of custom extension fields is something that I would like to define a way for servers to do. Ideally, this would be done in a way that is more or less self-serve in terms of individual server admins requesting as such. The most likely ways to do this would involve an NWNX plugin to return extra data that servers could configure, but this needs someone able to make the changes for NWN1/NWNX2. |
|
Back to top |
|
|
addicted2rpg
Joined: 01 Aug 2008 Posts: 106
|
Posted: Mon Jan 14, 2013 11:15 Post subject: |
|
|
I took a few serious cracks at making NWNCX (NWN1) do the listings and, umm, well, I think I ended up wasting an entire day lol Someone else will probably bust out with the solution and leave me sitting here like a noob, but mostly my desire to try is wrapped in a massochistic sense of entertainment value.
So I finally stopped messing around with trying to fudge the URLs and made a C# implementation of the web/xml-feed (which as far as I as I can tell is working fine) and I figured I would try out one of those "accessing managed code through an unmanaged application" tutorials that came up on google. Big Mistake. A lot of great tutorials that implemented and compiled perfectly with one main problem -- they don't actually work. Something about the security model of the .NET platform during runtime doesn't like a lot of those other fancy ways. I should of just went to the horse's mouth itself - http://support.microsoft.com/kb/908574
That's a future note for anyone who wants to try this avenue. I hope that KB is still actually valid....
I've also been thinking of ditching the .NET method and trying out a native C++ SOAP platform like either gsoap ( http://www.cs.fsu.edu/~engelen/soap.html ) or Apache's soap ( http://ws.apache.org/axis/ ). Any advice from the gallery about an appropriate soap library choice for the corresponding NWN1 extenders would be greatly appreciated.
I'm not sure which way is better (.NET "managed to unmanaged" code, or native SOAP library) - but hopefully I'll find out in a day or so when I get more time to sit down and look at it.
There is also the matter of using debugging to feed results back into the app. I've "taken a look" and "made progress" - but basically "have nothing" If anyone happens to know the perfect address to do that at, well, I think sharing that would be swell. To be fair, I think I can trick it into thinking the gamespy call succeeded, but that is only apart of it.
As far as the server extender goes (NWNX2) I haven't touched it yet (on this problem). I think virusman is looking into it last I checked. |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Sun Jan 20, 2013 23:24 Post subject: |
|
|
gSOAP is what I have heard there being success with, as far as native C/C++ SOAP client toolkits go.
The NWN2 Client Extension actually uses a managed (C#) client for the web service API. The native code portion of the Client Extension uses the CLR hosting APIs to spin up the CLR, dynamically instantiate the managed C# client assembly from a resource in the native CE DLL, and then calls in to that for web service requests.
NWN2 already needs the CLR installed (setup by the game installer; required by the toolset), so this was a convenient route for me to take. |
|
Back to top |
|
|
Th1rt33n
Joined: 21 Jan 2013 Posts: 2
|
Posted: Mon Jan 21, 2013 0:07 Post subject: |
|
|
How would I go about using this for NWN1? |
|
Back to top |
|
|
Skywing
Joined: 03 Jan 2008 Posts: 321
|
Posted: Mon Jan 21, 2013 2:06 Post subject: |
|
|
If you mean hosting the CLR, http://www.nynaeve.net/Skywing/CLRHost/CLRHost.zip has the code that I wrote to do this for the CE. This code requires at least that .NET 2.0 (or any higher version) be installed to work; it can be used to host .NET 2.0, or newer versions (e.g. 4.0) if desired, via the appropriate RuntimeVersion argument passed to the CLRHost constructor (generally, you pick the version that you compile your managed code assembly against). You're free to use that code as you like in your project, if you want.
The logic is set up to allow an assembly to be instantiated from a flat memory blob containing the assembly PE image, and a single static method taking a string and returning an int to be called. This blob is typically the .DLL outputted by the C# compiler or other CLR language and build tools of choice; embedding it as a resource is easily supported by the VC toolchain. Alternatively, you could just ship the managed DLL as freestanding on disk and load it that way.
The way that I leveraged this in the CE is to exchange a dispatch table with function pointers to native and CLR code between the native and managed environments with the static method called; the dispatch table would then be used for future communication as needed. You would typically instantiate a CLRHost once, keep it alive as a singleton after invoking StartCLRHosting(), and once at startup, use InvokeMethodOnAssembly() to load the managed portion of your code and exchange whatever data is necessary for future communication.
Don't use InvokeMethodOnAssembly for each subsequent request, as this expects to instantiate an assembly from scratch each time it is called.
You can use the string to pass in a dispatch table by, say, formatting the necessary native pointers as a string (along with whatever other data you wish to exchange) and passing them along to the managed portion of your code. Be sure to follow the rules for returning pointers to managed code that extend beyond the lifetime of the current call stack so that you don't corrupt the GC heap, e.g. use Marshal.GetFunctionPointerForDelegate() to return function pointers to native code (and keep the delegate argument to GetFunctionPointerToDelegate alive so that the delegate isn't reclaimed by the GC).
If you mean gSOAP, eeriegeek may be able to help with that, as he's used it to setup the isleclostridia CGIs to display a formatted server list view ( e.g., http://www.isleclostridia.net/cgi-bin/listnwns2html.cgi ). |
|
Back to top |
|
|
Th1rt33n
Joined: 21 Jan 2013 Posts: 2
|
Posted: Mon Jan 21, 2013 4:11 Post subject: |
|
|
Sorry, I did not understand that really too much at all haha. I'm not big into Programming.
Was there a program that is able to sort of.. restore the GameSpy way of NWN yet?
Thanks Skywing |
|
Back to top |
|
|
|