mirror of
https://git.code.sf.net/p/quake/website
synced 2024-11-27 22:42:57 +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