mirror of
https://git.code.sf.net/p/quake/website
synced 2024-11-24 05:01:23 +00:00
First draft
This commit is contained in:
parent
343a8e45c1
commit
dbdfebd4e7
1 changed files with 77 additions and 0 deletions
77
speed_cheat.php
Normal file
77
speed_cheat.php
Normal file
|
@ -0,0 +1,77 @@
|
|||
<?PHP
|
||||
$sitename = "The QuakeForge Project";
|
||||
$pagename = "Speed Cheat Detection";
|
||||
require("parts/library.php"); // Load function library
|
||||
include("parts/head.php"); // Load the HEAD and open BODY
|
||||
include("parts/topstrip.php"); // Display top strip
|
||||
include("parts/titletable.php"); // Display main title w/ logos
|
||||
?>
|
||||
<TABLE width="100%" cellspacing=0 cellpadding=0 border=0>
|
||||
<TR valign="top">
|
||||
<?php
|
||||
include("parts/menu.php"); // Import left-side menus
|
||||
tableSpacer( 1, 9, 1, "black"); // Separate content from menus
|
||||
?>
|
||||
<TD width="100%">
|
||||
<?php
|
||||
$focused = "none"; // name of focused icon
|
||||
include( "parts/topmain.php" ); // Display content top table
|
||||
?>
|
||||
<h3>How does it work?</h3>
|
||||
<P>
|
||||
The speed cheat works by the client lying to the server
|
||||
about how much time has passed since the last packet
|
||||
sent. Therefore, the cheat detection is simple. For a
|
||||
period of say, 30 seconds, QuakeForge adds up the times
|
||||
from all the movement packets received from a specific
|
||||
client. If the client says that more then 30 seconds
|
||||
passed in 30 seconds, a red flag is raised.
|
||||
<h3>Are there any problems with this?</h3>
|
||||
<p>
|
||||
Sadly the Windows QuakeWorld clients before 2.33 had a
|
||||
bug in keeping track of time. The longer Windows is up,
|
||||
the faster time will seem to pass. While there is not a
|
||||
noticeable speed boost from this until it has been up
|
||||
for more then a day or so, it is detectable even after
|
||||
the system has been up only a few hours.
|
||||
<p>
|
||||
This and several other factors can cause the time
|
||||
reported by the client to be over the time the server
|
||||
expects. Lag and packet loss are some of these factors.
|
||||
<h3>Well, what can I do?</h3>
|
||||
Recongnizing these concerns, we decided to make the
|
||||
cheat detection adjustible for server admins. Here are
|
||||
descriptions of some of the cvars that you can use to
|
||||
configure cheat detection on your server.
|
||||
<p>
|
||||
<em>sv_timekick</em>: This cvar controls the number of
|
||||
times a player has to be caught "cheating" before they
|
||||
get kicked. sv_timekick shows up in serverinfo if it is
|
||||
changed from the default. If sv_timekick is less than 1,
|
||||
speed cheat detection is disabled. Default is 3.
|
||||
<p>
|
||||
<em>sv_timekick_fuzz</em>: This cvar affects how strict
|
||||
the protection is. The higher the number, the more
|
||||
"fuzz" is applied, and the less strict the detection
|
||||
code is. Raise this if your players are being kicked for
|
||||
packet loss and lag. Default is 10, giving a fuzz factor
|
||||
of about 1 percent.
|
||||
<p>
|
||||
<em>sv_timekick_interval</em>: This cvar controls how
|
||||
often, in seconds, the time tally is counted. Lowering
|
||||
this value increases the chance of false positives, but
|
||||
helps to minimize the amount of damage a speedcheating
|
||||
player can cause. Default is 30 seconds.
|
||||
</TD>
|
||||
<?php
|
||||
tableSpacer( 1, 9, 1, "black");
|
||||
?>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD COLSPAN="4">
|
||||
<?php
|
||||
include("parts/copyright.php");
|
||||
?>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
Loading…
Reference in a new issue