Zum Inhalt wechseln

Foto

Web service API for replacement master server tracker


  • Bitte melde dich an um zu Antworten
3 Antworten in diesem Thema

#1
SkywingvL

SkywingvL
  • Members
  • 351 Beiträge
I've made available a master server tracker that manages periodically obtaining status information from a known server list and making it available through simple SOAP web service requests.

The tracker handles all of the details involved in retrieving data from servers, managing aging out of servers that have gone offline from the current online server list, protocol differences between NWN2 and NWN1, etc.

If you're interested in using the API, http://api.mst.valha...erServerAPI.svc is the API endpoint.  The WSDL describing the API is linked from that page.  The API monitors both NWN2 and NWN1 servers.  Clients of the API are responsible for validating the contents of data, which is passed through from end servers, as appropriate for their environment (e.g. performing entity escaping).

Source code for the backend infrastructure for the web service API and server tracker can be found here: https://github.com/S.../nwn2dev-public .  This source file describes the public API methods and data types: https://github.com/S...terServerAPI.cs

Individual game servers can redirect nwmaster.bioware.com communications to replacement master server listeners in order to be listed in the master server tracker automatically, using these endpoints:

NWN1: nwn1.mst.valhallalegends.com
NWN2: nwn2.mst.valhallalegends.com

NWN2 server admins are strongly encouraged to install the latest NWNX4 xp_bugfix plugin, which automatically sends a copy of master server messages to nwn2.mst.valhallalegends.com for automatic server listing (http://www.nwnx.org/...opic.php?t=1086).

There is no corresponding NWNX2 plugin for NWN1 yet available; if someone would be up to the task of backporting the xp_bugfix changes (relatively simple) to NWNX2, I'd be grateful for the assistance.  As a stopgap, you can either a) use the RegisterPendingServers API method to register an ip/port with the tracker, or B) redirect nwmaster.bioware.com to nwn1.mst.valhallalegends.com.  All master server auth requests are passed through as succeeded so there is no change in account auth status from doing this.

There are a variety of frontends and clients for the web service API today:

http://www.nwnlist.com
http://www.isleclost...stnwns2html.cgi
http://www.isleclost...stnwns1html.cgi

Additionally, the NWN2 Client Extension uses the web service API to completely replace the old server browser backend with one powered by the new tracker infrastructure, which restores the in-game server browser for users using the CE.  (http://social.biowar...1/index/3116438)

In principle, this could be replicated for NWN1 if someone is willing to take on the work.

Bearbeitet von SkywingvL, 29 Dezember 2012 - 04:17 .


#2
painofdungeoneternal

painofdungeoneternal
  • Members
  • 1.799 Beiträge
This is sweet, i have been playing around with this API and have it working ( mainly the getting entire list of servers ). I had gamespy working, and basically replaced the code with this - this is actually a lot faster.

I noticed it does not list language as a property when i get the complete list of servers, I would think that listing the language constant would be useful, there used to be a strong german and spanish PW scene. I'd probably default people to just showing servers in their own language. Other than that it has all the properties returned from gamespy besides language, I just had to rename a few of them to make them match.

I had it so it would launch NWN1 with a parameter, so am looking at it being able to launch NWN2 the same way now that feature is returned to NWN2 with the NWN2 Client Extension. It makes it a lot easier when they both work the same.

#3
SkywingvL

SkywingvL
  • Members
  • 351 Beiträge
Zelknolf wrote a program that will let you monitor servers on the desktop and launch NWN2 to connect to them if you use the CE, using the new +connect support ( http://nwvault.ign.c...r.Detail&id=295 ).

There are a number of international PWs known to the tracker. I'm not aware of the server's install language being directly exposed other than the server to master server startup message that isn't reliably received (unfortunately).

Bearbeitet von SkywingvL, 10 Januar 2013 - 08:19 .


#4
painofdungeoneternal

painofdungeoneternal
  • Members
  • 1.799 Beiträge
I can get the language directly from the ip address of each server then ( via old gamespy syntax ).