Unity-Technologies / qstat

New official qstat repository
Artistic License 2.0
121 stars 33 forks source link

Hexen II only outputs player stats for one player #114

Closed thezionmainframe closed 3 years ago

thezionmainframe commented 3 years ago

qstat does not return a list of all connected players and their stats when multiple players are connected to a Hexen II server. This works perfectly with other games like HexenWorld or Heretic II for example.

Multiple players are reported by $PLAYERS in server.txt so the output will look like: 2/8 (as it should) but only one $PLAYERNAME and stats for that player are reported in the output.

qstat -f hexen2.txt -Th header.txt -Ts server.txt -Tp player.txt -P|grep -v -e 'DOWN|TIMEOUT|192.168.|ERROR|HOSTNOTFOUND|^$'

contents of hexen2.txt: h2s blackmarsh.hexenworld.org:26900 h2s blackmarsh.hexenworld.org:26901 h2s blackmarsh.hexenworld.org:26902

contents of header.txt: ,SERVER NAME,ADDRESS,PLAYERS,MAP,GAME

contents of server.txt: $TYPE,$SERVERNAME,$HOSTNAME,$PLAYERS/$MAXPLAYERS,$MAP,$GAME $PLAYERTEMPLATE

contents of player.txt: ,NAME,FRAGS,PING,TIME, ,$PLAYERNAME,$FRAGS,$PLAYERPING,$CONNECTTIME,

Actual output: ,SERVER NAME,ADDRESS,PLAYERS,MAP,GAME Hexen II,Hexen II DM w/ bots,blackmarsh.hexenworld.org:26900,0/8,ravdm2, Hexen II,Hexen II Coop Peanut,blackmarsh.hexenworld.org:26901,0/8,demo1, Hexen II,Hexen II DM,blackmarsh.hexenworld.org:26902,2/8,demo3, ,NAME,FRAGS,PING,TIME, ,player1,0,0, 1m,

Desired output: ,SERVER NAME,ADDRESS,PLAYERS,MAP,GAME Hexen II,Hexen II DM w/ bots,blackmarsh.hexenworld.org:26900,0/8,ravdm2, Hexen II,Hexen II Coop Peanut,blackmarsh.hexenworld.org:26901,0/8,demo1, Hexen II,Hexen II DM,blackmarsh.hexenworld.org:26902,2/8,demo3, ,NAME,FRAGS,PING,TIME, ,player1,0,0, 2m, ,player2,0,0, 1m,

On a separate note, I also noticed that no player ping is returned for Hexen II. Is this a limitation of qstat?

stevenh commented 3 years ago

Tried to reproduce but the servers you listed don't have players.

thezionmainframe commented 3 years ago

Try blackmarsh.hexenworld.org:26902. I am online now and will try to get a second player to log in.

thezionmainframe commented 3 years ago

quakestat -h2s blackmarsh.hexenworld.org:26902 -P will reproduce the issue.

stevenh commented 3 years ago

It's only saying there is 1 player :(

thezionmainframe commented 3 years ago

I have a second player who just joined. Please also check here: https://hexenworld.org/qstat/

It shows 2 players connected but only lists one name.

thezionmainframe commented 3 years ago

quakestat -h2s blackmarsh.hexenworld.org:26902 -P ADDRESS PLAYERS MAP RESPONSE TIME NAME blackmarsh.hexenworld.org:26902 3/8 0/0 demo1 1307 / 4 bmiller

0 0 frags 11m42s Peach:Red ws

stevenh commented 3 years ago

Thanks for getting the players on the server for a test case.

Can you try the fix in #115 please.

thezionmainframe commented 3 years ago

That worked perfect! I now see 2 players :)

I do see that player ping always shows 0. Is this a limitation of qstat?

I was reading the 2.10 documentation and it says the following for $PLAYERPING: "The player's ping time to the server. This value is not available from Half-Life or Ghost Recon servers."

stevenh commented 3 years ago

Looking at the Hexen 2 server source code it only provides the following items per player:

So no ping is not part of the data the server sends I'm afraid.