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 
 
Centralized master server emulator- post-gamespy server list
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    nwnx.org Forum Index -> General Discussion
View previous topic :: View next topic  
Author Message
nwnlist



Joined: 14 Dec 2012
Posts: 6

PostPosted: Mon Dec 17, 2012 11:10    Post subject: Reply with quote

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
View user's profile Send private message
eeriegeek



Joined: 07 Jan 2008
Posts: 59

PostPosted: Mon Dec 17, 2012 16:52    Post subject: Reply with quote

nwnlist wrote:
Would there be any interest in a NWN1 version of Scry?.


I would certainly think so! Smile 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
View user's profile Send private message
nwnlist



Joined: 14 Dec 2012
Posts: 6

PostPosted: Mon Dec 17, 2012 18:39    Post subject: Reply with quote

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
View user's profile Send private message
Nightrise



Joined: 15 Feb 2012
Posts: 2

PostPosted: Mon Dec 17, 2012 23:56    Post subject: Reply with quote

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
View user's profile Send private message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Thu Dec 27, 2012 13:05    Post subject: Reply with quote

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
View user's profile Send private message
eeriegeek



Joined: 07 Jan 2008
Posts: 59

PostPosted: Thu Dec 27, 2012 19:52    Post subject: Reply with quote

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 Rolling Eyes ). 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
View user's profile Send private message
addicted2rpg



Joined: 01 Aug 2008
Posts: 106

PostPosted: Sun Dec 30, 2012 22:50    Post subject: Reply with quote

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 Smile).

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
View user's profile Send private message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Mon Dec 31, 2012 12:41    Post subject: Reply with quote

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
View user's profile Send private message
Baaleos



Joined: 02 Sep 2007
Posts: 830

PostPosted: Mon Dec 31, 2012 13:16    Post subject: vaultster Reply with quote

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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Fri Jan 04, 2013 3:08    Post subject: Reply with quote

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
View user's profile Send private message
addicted2rpg



Joined: 01 Aug 2008
Posts: 106

PostPosted: Mon Jan 14, 2013 11:15    Post subject: Reply with quote

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 Smile 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" Smile 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
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Sun Jan 20, 2013 23:24    Post subject: Reply with quote

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
View user's profile Send private message
Th1rt33n



Joined: 21 Jan 2013
Posts: 2

PostPosted: Mon Jan 21, 2013 0:07    Post subject: Reply with quote

How would I go about using this for NWN1?
Back to top
View user's profile Send private message
Skywing



Joined: 03 Jan 2008
Posts: 321

PostPosted: Mon Jan 21, 2013 2:06    Post subject: Reply with quote

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
View user's profile Send private message
Th1rt33n



Joined: 21 Jan 2013
Posts: 2

PostPosted: Mon Jan 21, 2013 4:11    Post subject: Reply with quote

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? Smile

Thanks Skywing
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    nwnx.org Forum Index -> General Discussion All times are GMT + 2 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
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