Rune Central
http://forums.runequake.com/

ProQuake Scoreboard Pings
http://forums.runequake.com/viewtopic.php?f=2&t=934
Page 1 of 2

Author:  Slot Zero [ Fri Oct 14, 2005 11:26 pm ]
Post subject:  ProQuake Scoreboard Pings

CRMod Manual wrote:
ProQuake clients by default display ping times in the scoreboard. This feature works for any server (crmod or non-crmod). Ping times are normally updated once every five seconds while the scoreboard is being displayed, but crmod 6.0 sends messages to update the ping times once every second.


I added this feature to Rune Quake.

Author:  Baker [ Sat Oct 15, 2005 12:17 am ]
Post subject: 

Just an oddball question ... this won't give players like Bam more lag, will it?

Author:  Slot Zero [ Sat Oct 15, 2005 12:32 am ]
Post subject: 

It's a small amount of data and it's only being sent once a second so it won't be noticeable at all.

Author:  Baker [ Sun Oct 16, 2005 3:49 am ]
Post subject: 

I don't know if it is this feature, but Yellow No. 5 had a ton of trouble today with staying connected with QRack, Bam lagged out a lot more than normal and if I played with ProQuake everything was fine but both JoeQuake 0.14 Dev and 0.15Dev had big trouble on E4M3.

Author:  Slot Zero [ Sun Oct 16, 2005 12:24 pm ]
Post subject: 

I just connected with JoeQuake 0.14DEV on port 26000 (total 15 players) and had no problems.

I'm guessing it's a coincidence. There was a problem this morning with high pings, but it had nothing to do with the mod or linux server.

You could also try playing on the rocket arena server, which is using an older progs that doesn't include this feature.

Author:  sputnikutah [ Sun Oct 16, 2005 1:00 pm ]
Post subject: 

Strangely on runequake if I allow Qrack to recieve pqc_ping_times i get erroneous pings up to 3000+, so I commented it out and the scoreboardpings work fine now. It only updates when the client holds the TAB key. I think that pqc_ is mainly for local console on the server right?
I'm sure its something wacked out on my side when implementing that feature.

Author:  Slot Zero [ Sun Oct 16, 2005 1:25 pm ]
Post subject: 

No, the pqc_ functions in the engine are client-side. They are used to parse extra data sent by the server for team related stuff (hud frags, hud color, hud time), plus it allows you to update ping times so that when you make changes to svc_updatename, the standard ping parser won't get screwy.

Author:  sputnikutah [ Sun Oct 16, 2005 1:28 pm ]
Post subject: 

Hmm, interesting...

I need to look why qrack fubars on that :shock: , it happens on CRmod servers too :(

Author:  Slot Zero [ Sun Oct 16, 2005 2:55 pm ]
Post subject: 

Baker wrote:
I played with ProQuake everything was fine but both JoeQuake 0.14 Dev and 0.15Dev had big trouble on E4M3.


What exactly do you mean by "big trouble"? Does JoeQuake support scoreboard pings? I think his latest release (0.15 build 1140) does but the whatsnew.txt says it's broken (reports all 0).

Author:  Baker [ Sun Oct 16, 2005 4:11 pm ]
Post subject: 

Slot Zero wrote:
Baker wrote:
I played with ProQuake everything was fine but both JoeQuake 0.14 Dev and 0.15Dev had big trouble on E4M3.


What exactly do you mean by "big trouble"? Does JoeQuake support scoreboard pings? I think his latest release (0.15 build 1140) does but the whatsnew.txt says it's broken (reports all 0).


It is broken. I froze when being killed and JoeQuake 0.15 simply froze and locked up, I had been playing 15-20 minutes on the Start map with no issues.

Then I reverted to JoeQuake 0.14 DEV, because I thought the freeze might have something to do with a bug in 0.15 DEV, and froze about 1 minute into the game.

I'll keep watching it and testing it and see if it happens again and the circumstances,.

Author:  Slot Zero [ Sun Oct 16, 2005 5:25 pm ]
Post subject: 

I played on the 26000 server for more than 30 minutes with the latest JoeQuake and did not experience any lock ups. One of the levels that was played was E4M3. I did experience some textures issues when the level changes though.

Toyo and Cherrie were playing and I believe both of them were using JoeQuake at the time.

The scoreboard pings shouldn't affect JoeQuake anymore than the time, frag, and color updates that are being sent in vote-team or vote-match mode.

If you do discover a relationship between the crashing and JoeQuake, please make sure that you test it on both servers where the scoreboard pings are enabled and not enabled.

Author:  yellow#5 [ Sun Oct 16, 2005 11:37 pm ]
Post subject: 

Last night when connecting to port 26002, I would immediately get an error and be disconnected:
host_error: cl_parseproquakemessage: pqc_ping_times > max_scoreboard
The ra port worked fine.

I had recently got a new version of qrack from sput and thought it might be that, but after trying an old version that has been stable and I've used for months I got the same error. So I tried Proquake, but the same thing happened but with this error:
host_error: cl_parseservermessage: svc_updatename > max_scoreboard

After a few tries I connected and played for a few min, then got the error again.
After that I asked sput about it and he gave a new version of qrack without pqc_ping_times. It worked fine and got no errors.

Author:  Baker [ Mon Oct 17, 2005 1:27 am ]
Post subject: 

This may or may not have anything to do with Slot's changes, but after getting the crash in 0.15DEV, I reverted to 0.14DEV and got the crash again. I got another one today with 0.15DEV, but it mostly ran smooth but still bugs me.

The main reason it bugs me is that when 0.14DEV froze, it was a hard freeze and I've used 0.14 DEV enough over several months and such a thing like that had never happened in the past.

(It could be my setup, somehow my computer, my connection or my config. I'm not saying I know why, but the timing seemed strange.)

Author:  Baker [ Mon Oct 17, 2005 2:32 am ]
Post subject: 

Correct, I never switched to JoeQuake 0.14DEV. So, I'm just going to assume it was the same problem as Yellow that was fixed.

I had copied the joequake-gl.exe into the JoeQuake folder to try 0.14DEV, but of course, it goes in the Quake folder. So I've only had this error with 0.15.

Author:  Slot Zero [ Mon Oct 17, 2005 6:13 am ]
Post subject: 

Baker wrote:
Correct, I never switched to JoeQuake 0.14DEV. So, I'm just going to assume it was the same problem as Yellow that was fixed.


Yellow's problem is a result of the scoreboard pings addition. The problem isn't in Rune Quake though, it's a problem with Qrack.

Your JoeQuake problem seems unrelated, or at least has yet to be associated with the scoreboard pings. If your goal is to find out, here's how you should go about testing it out:

  • Try to reproduce the problem on another server without scoreboard pings (ex: 26001).
  • If the problem still exists, it's not the scoreboard pings. Report the problem to Jozef.
  • If the problem doesn't exist, try connecting to a CRMod server.
  • If the problem exists, report the problem to Jozef.
  • If the problem doesn't exist, it's the scoreboard pings (report it to me).


Thanks,

Author:  sputnikutah [ Sat Oct 22, 2005 3:18 pm ]
Post subject: 

Slot,

I'm trying to add pqc_ping_times to my ctf mod. So far every 5 seconds i stuff a command to the client that issues an impulse. The mod catches that impulse and records the time now and the last time that impulse was "caught"
the difference * 1000 = that client's ping.
Now im trying to send that to all clients but im having problems with the
cl.scores[ping/4096].ping = ping & 4095 part...
This is the routine i have so far
Code:
void (float ping)
pqc_ping_times =
{   
   WriteByte (MSG_ALL, SVC_STUFFTEXT);
   WriteByte (MSG_ALL, 1);
   WriteByte (MSG_ALL, PQC_PING_TIMES);
   WriteShortPQ (MSG_ALL, ping);
   WriteString (msg_type, string_null);
}; 

the mod loops thru a find player loop and calls pqc_ping_times(player.ping)
but then everyone has the same ping reported :shock: should ping be
(ping +(client_num*4096)) ?

Author:  Slot Zero [ Sat Oct 22, 2005 8:41 pm ]
Post subject: 

sputnikutah wrote:
So far every 5 seconds i stuff a command to the client that issues an impulse. The mod catches that impulse and records the time now and the last time that impulse was "caught" the difference * 1000 = that client's ping.


If you're using the internal.qc project included with qccx, you can get a clients ping this way,

Code:
float (entity e)
client_ping =
{
   local float i, ping;

   for (i = 0 ; i < %16 ; i = i + %1)
      ping = ping + (e.cl[CL_PING_TIMES + i] * 1000);

   ping = floor (ping / 16);
   if (ping < 0)
      ping = 0;
   else if (ping > 9999)
      ping = 9999;

   return ping;
};


sputnikutah wrote:
the mod loops thru a find player loop and calls pqc_ping_times(player.ping) but then everyone has the same ping reported :shock: should ping be (ping +(client_num*4096)) ?


Yes, however, don't loop through the players and call pqc_ping_times(), loop through the players inside pqc_ping_times().

For example,

Code:
void ()
pqc_ping_times =
{
   local entity e;
   local float i, ping;

   WriteByte(MSG_ALL, SVC_STUFFTEXT);
   WriteByte(MSG_ALL, 1);
   WriteByte(MSG_ALL, PQC_PING_TIMES);

   e = world;
   for (i = 0; i < 16; i = i + 1)
   {
      e = nextent (e);
      if (e.classname == "bodyque")
         i = 16;
      else if (e.cl[CL_ACTIVE] == %1 && e.delay)
      {
         ping = e.delay;
         if (ping > 4095)
            ping = 666;
         WriteShortPQ (MSG_ALL, ping + (i * 4096));
      }
   }

   WriteShortPQ (MSG_ALL, 0);
   WriteString (MSG_ALL, string_null);
};


I use the .delay field to store the client ping. I populate this in PlayerPreThink() every second. Make sure that each client's ping value isn't less than zero or greater than 4095 or else it will screw up the client number.

Author:  sputnikutah [ Sun Oct 23, 2005 2:04 am ]
Post subject: 

:) cool seems to work like a champ thanks!

Author:  Slot Zero [ Sun Oct 23, 2005 5:54 pm ]
Post subject: 

You're welcome!

Author:  sputnikutah [ Thu Nov 03, 2005 10:34 pm ]
Post subject: 

Oddly, in runequake (not crmod) with pq_scoreboardpings 1 i get wacky pings, if i remove pqc_pingtimes from the cl_parse its all good. :O who knows but eitherway i dont update the scorboard to require it... i guess ill have to deal with a blank ping when crmod write "ready" next to my name :<
(oh wait who plays crmod anymore ?! ehehe)

Page 1 of 2 All times are UTC - 5 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/