Nothing has been finialised yet. What was developed as a result of the
email thread below was this document:
http://www.adminmod.org/alfred/SQS_v03.html

Any query API we implement will also have a challenge/response built
into it (for everything except "ping" queries).


Brian A. Stumm wrote:


For some odd reason I stumbled across this tonight, don't ask how...

http://www.mail-archive.com/[EMAIL PROTECTED]/msg00028.html

And it got me to thinking again. Have you thought anymore about an
extended server query API for hlds and can you comment on the server query
protocol for HL2? You seemed to support the idea of an extended query
format at one time...

I'd like to reiterate how EXTREMLY pleased I am with Rob aka Maelstrom's
"New API" standard for halfd. Afterall I helped him come up with it :)

As a reminder, its a tab delimited format, which is quite easy for anyone
thats used to DB's to use. Heck it can be imported right into a db if ya
want... Using this API I've managed to create a tool that displays
extended server/player data, show live chat (say and say_team) and also
include whatever important events I want to show (red capped the flag for
example). I've written classes for C and PHP to parse this format and it
seems to work quite well (been using it over a year now).

I brought this up once before and don't think you quite understood me...
This protocol allows me to grab all the data into an array (php). The
array names come from the info I get back so if Halfd's api is extended my
array will include the new info. I might have to update my gui's output
to display the NEW data but it will NOT break my current display if things
are added (or if another mod doesn't support showing that info). I do this
by doing a $$key type thing so if the my array is called "$myserver" and
this particular key is $frags then I have $myserver[frags]{$i] in my array
where $i represents a player (incremental number).

If a reminder is needed here is Rob's explanation of the new api.

-quote-


New API


Several 3rd-party client developers had trouble parsing keyed lists, so a
new API scheme was introduced in early 2002. Instead of using keyed lists,
the server will send a newline-and-tab-separated structure similar to a
raw database dump.
The API is enabled in halfd.cfg with the "newapiauth" and "newapiusrauth"
directives.
A message consists of one or more lines.
Each line contains a variable TAB value structure.
A message is terminated with a blank line.
The keys used are the same as described above, with the addition of a
LINES key that tells you how many lines to read.
(Or you can just read the TCP stream until you encounter a blank line).


Here's an example of an UPDATE message (note- tabs dont show too well and wrapping may not show newlines the best):

lines 18
type UPDATE
up 1
time 845
data
users [BOT]Nyarlathotep ^_^ [BOT]Azathoth [BOT]SuperLuckyKitty
pings 5 5 5 5
frags 0 0 0 0
times 69:37:53 69:37:53 69:37:53 69:37:53
ips 127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1
userid 980 981 982 983
wonid 0 0 0 0
model Soldier Engineer Soldier HWGuy
team Red Blue Blue Blue
deaths 1 1 2 0
map cj2
cnt 4
vote 1

Here's an example of a TEXT message:

lines 5
type TEXT
up 1
time 832
data L 01/13/2003 - 13:15:22: Server say "hello, world"

HTML doesn't do a good job of showing this, but there's a TAB after each
key, and between each discrete value, e.g.,

pings 5 5 5 5

will really come across as

pings[TAB]5[TAB]5[TAB]5[TAB]5[newline]

- end quote -

Replace [TAB] with \t and [newline] with \r\n.


_______________________________________________ hlds_apps mailing list [EMAIL PROTECTED] http://list.valvesoftware.com/mailman/listinfo/hlds_apps

_______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders



Reply via email to