Well, I though about making an online php app that would work like the All-Seeing-Eye. Basically it would allow players to find other players on the different registered servers, plus the possibility to apply some filters like specific gamemode, map, even the team of the player, or just server ip, port or name.
The only problem is that servers that register would have to supply their admin password, ip & port.
yes, that does pose a problem. PM enesce about this, he might know how to get by that.
If theres a way to get by that it's a hack;)
But if you meant to get the playerlist without the admin password then it aint a hack.
I've thought about this too some time ago but ASE is a lobby server. When you enable to add the server into the ASE lobby it'll get the playerlist. How it does that I don't know but ASE tends to keep it's protocol secret.
I think the only way to get the player list is to create a lobby server yourself. Either with a .dll that comes with the game or some sort of site where you can register your server to the 'SNS lobby' but they'll have to supply their password , IP:Port (or a name so you can search lobby.soldat.pl for it).
Grtz , DePhille
Hmn, the ASE protocol "knows" the password, it just has to read it from the soldat.ini, but in SNS it would work with a submission form like:
Submit your server
[CENSORED] you rabid.
the ASE protocol uses UDP querying and just reads from gamestat.txt actually, it does not use the REFRESH command in anyway. A better solution would be to code a linux+win app that does the same sort of thing by reading gamestat.txt upon request by the 'Master server'
A long time ago I was trying to create something similar.
But my idea was to create a simple server browser, something where you could add ip/port of your favourite servers and the program would query these servers and show the current map, ping, player names and scores, and some more stuff.
Since the server supports the ASE protocol all you have to do is connect yourself to the query port and then parse the data returned by the server.
The ASE protocol is not a secret, you can see how it works here:
And here's my old (very old) topic about all this query stuff, it has some usefull information.
I gave up the project because there were a lot of servers that I couldn't query. I don't know if this was a problem with my program (since I was using Visual Basic's winsock control) or a problem with blocked ports in the server host.
The query port is not the same as the game port, in fact the query port is game port + 123, eg: for a server running on 23073 the query port is 23196 (23073 + 123 = 23196).
I guess the problem was related to firewall and blocked ports stuff. Since the query port is different and nobody knows it exists I think server admins have it closed on their firewalls. If you check Soldat's documentation you'll see that it doesn't mention that this query port must be open in the firewall/router.
I don't know how the lobby works, but it seems it doesn't use the ASE port to query the servers. Maybe the servers constantly send the updated data to the lobby instead of the lobby having to ask for it everytime?
In short: you DON'T need the password to get information from the server, you can do it via the ASE query stuff.
You should give it a try, your idea is very nice.
Heh, im back. I will start to work on this when i get the internets on my compuyter (2 weeks?).
One more thing I forgot.. Linux servers can't be queried using the ASE port unless they're running that program "Soldat Monitor".
This sucks hard cause you won't be able to get information from these servers. Michal sould fix this ASAP.
I was thinking sometime ago about extending the current lobby server list page and add functionality like sorting, filtering. PM me, maybe we can think how to do it.
vash, don't spam. This is your first official warning.
Sorry for expressing how cool it was for him to start working on this agian. I'll try to refrain from it in the future.