Cheapo
A freeware QuakeWorld 2.1-2.3 proxy
Copyright (C) 1998 Sami Tammilehto
[ News | Information
| FAQ | Feedback | Download
]
30-Jan-1999
Version 2.6 now
available! This version is for Windows and Linux.
I have only received a few queries about the other unix versions, and as
a result they will no longer be updated. This new version only contains
a few updates:
-
added commands for inserting special symbols to team
messages. $xx where 'xx' is a hex number can be used to insert
any character (not all are allowed by QW though). This allows accessing
special symbols in custom GFX.WAD-files.
-
you can erase the name (and insert a shorter one)
by preceding a team message with 'x$r'.
-
also added a few more characters to the funny character
support (see .help fun)
-
%P (capital) tells the last powerup you
had that has ended
-
a new .quiet command can be used to hide the information
the proxy prints when executing commands. A plain '.quiet' will
disable any proxy printouts for about 0.5 seconds. If you have a longer
script, you can use '.quiet 1' to stop printing and then '.quiet
0' to resume.
-
the 'notimers' text in f_versions etc has
been removed. Timers are still disabled though, but I think people know
it by know without special reminders.
-
fixes to f_modified (also, TF player model no longer
being reported as incorrect).
26-Nov-1998
Version 2.5 for Linux is now available on the download page.
The other versions will be posted when the protection issues can be resolved
on those operating systems, although it probably won't happen very soon.
24-Nov-1998
Version 2.5 now
available! It really took a lot longer to get this next version up than
what I expected, but here it finally is. This version is only for
Windows, but a Linux version is coming in a few days. The
other versions will probably take longer, no promises there.
Although the wait was long, the good news is that
there are a lot of new features. But even a bigger change is something
that is missing. Cheapo 2.5 has
no poweruptimers. If you don't like this
decision, too bad. There are alternatives to Cheapo that do include timers,
and old versions will remain available, in case you can't live without
them. Cheapo 2.5 reports 'notimers' in f_version and the like to
remind of this. Timer related commands are ignored without an error message
and %g (list soon appearing powerups) always reports 'quad'.
Of course totally removing the timers makes it
pretty hard to hack them back in, but just in case somebody is really persistent
I have also enhanced the cheating/hacking protections in Cheapo:
-
f_modified can be used in official matches to report
any models that have been changed. This works exactly as in Qizmo (the
code is actually the same, courtesy of Juha Kujala) and requires that QWCL
and proxy are running on Windows in the same machine, and QWCL is started
by the proxy as described below:
-
Cheapo can now start QWCL automatically with a command
line like 'cheapo c:\quake\qwcl.exe +exec myconf.cfg'. Put Cheapo
options before the qwcl.exe and qwcl options after the exe (like the +exec
in the example). This is required for f_modified to work (the proxy must
make sure it is checking the models from the same QWCL you are using and
not from another directory). In this mode Cheapo exits automatically when
you quit QWCL (you can override this with -x).
-
f_version now reports an additional three letter
code that is different on every server. This makes it harder to masquerade
Cheapo 2.5 with another proxy.
-
Enhanced f_version (like in Qizmo) can be activated
by adding some text after f_version (as in 'f_version mytext').
In this mode a long checking code is calculated from the cheapo executable
and the text you give (resulting a different code for each text). You can
then compare that all cheapos report the same code to verify that cheapos
are identical. However, since the executable is compared, this code is
different for each cheapo version and os (-W is appended to code for windows
version, -L for linux version).
For enhanced teamplay, especially in larger games:
-
Color override now allows separate topcolor and bottomcolor.
For example '.color 4,12 0,13' sets Red-Yellow to teammates and
White-Blue to enemies (the order is topcolor,bottomcolor). And '*'
works as before leaving that color untouched, except that '*,4'
etc are not supported.
-
Teamcolors. With '.color team 0' (the enemy
color can be what you want, 0=white here) your teammates get their color
from everyones setinfo variable 'teamcolor' (if such a variable
is defined). So to appear as green to your teammates using this option,
you would do 'setinfo teamcolor 3'. You can also specify topcolor,bottomcolor
as in 'setinfo teamcolor 3,4'. With this feature each teammate
(or group such as attack/defend) can have a separate color while still
maintaining a single public color on the server (like when the enemy insist
you all use the same color).
-
Message groups. With teamcolors you could define
differently looking subteams, and with message groups you can communicate
between the subteams by sending messages only to particular groups. The
feature is used with the new .filter command, and is best described
with an example: Player 1 does '.filter #att', player 2 does '.filter
#def #flag' and player 3 does '.filter #def'. After this
messages with ' #att' at the end are only visible ot player 1
(like 'attack now! #att') and messages with '#def' to players
2 and 3. As in the example for player 2, you can belong to multiple groups.
Howerver, a message can only be sent to a single group. Also note that
the ' #att' must be at the end of the message and there must be
a space before '#'. If no filters are enabled you see all messages,
and of course messages with no ' #' are shown to all. And to state
the obvious: It's a good idea to use short groupnames.
-
%N (note the capital letter) can to hide
the message from yourself to reduce message clutter. This is useful to
for example hide automatic f_took and f_powerup messages (redefine those
aliases with %N at the end). Note that %n %N
and #group must all be at the end of the message, and only one
of them is allowed.
-
Soundtrigger messages are no longer shown (that was
actually a bug in 2.4). Now it's also possible to have text before the
soundtrigger. If trigger character is $, message 'say_team Base secure
$misc/secret.wav' would print 'Base secure' and play the
sound instead of the message beep. Soundtrigger must be the last thing
on the message. It's advisable to use a seldom used character (like $ or
&) as the trigger to avoid accidental soundtriggers.
And finally some miscellaneous stuff:
-
Preliminary Gamespy support. You must put Cheapo
in the same directory as QWCL and set the QuakeWorld command line to 'cheapo
c:\quake\qwcl.exe' (assuming you want no cheapo options and c:\quake
is your quake directory). Then you need to disable from 'Tools | Options'
the checkbox 'Network | QuakeWorld Client | Use Network Connections for
QuakeWorld'. With this done clicking on a server in gamespy should start
cheapo and automatically connect to that server. I have tested this with
GameSpy 2.0.5, but not much :)
-
A new pointing option 'enemy' can be used instead
of 'player' in which case you can point through your teammates, if they
have a habit of getting in the way.
-
Pointing to TF classes and the war standard should
now work.
-
Support for dynamic ip changes (option -y). In this
mode it is possible to reconnect with a dynamic ip without dropping
from the proxy. Of course in this case the proxy must run in the net on
a fixed ip.
-
Proxy detects the deathmatch mode and in DMM3 doesn't
point to weapons or report weapon took messages. You
can override this with the .dmm command.
-
Finally, added option -d (deny) to ban specific ip
address ranges in addition to the existing
-a (allow) which denys all addresses outside
a given range. Multiple deny ranges are supported.
Well, with this many features I guess there will be even more features
(bugs). But I guess I'll hear about them soon enough :) Thanks for all
the email you've sent me, and like I have said elsewhere I do read it but
don't always have the time to answer (especially if you just want to get
the timers back).
13-Nov-1998
Like you have probably heard, there is a modified
version of Cheapo 2.4 that enables timers and other features regardless
of serverside FPD disables. I'll try to get a new version out as soon as
possible, but it'll still be next week, because I really am very busy right
now (this thing really comes at the most incovenient time possible).
There is little point in releasing just the same
old version with a new version number, like some have suggested.
It would just be cracked again in the same way. Instead, if you want
to avoid 2.4 in fear of being called a cheater, you can use an older version
like 2.3 which has most of the features.
The next version will include the enhanced f_version
and f_modified (courtesy of Perkele), which should make cracking considerably
more difficult.
6-Nov-1998
I have received many queries about when the
next version of Cheapo is coming. I am quite busy right now on other
matters, and unfortunately haven't been able to work on Cheapo for many
weeks. This should be temporary, and I expect the next version will come
out later this month, although I am not making any guesses as to when exactly.
It will include the f_modified features mentioned on Qizmo pages.
30-Sep-1998:
Added another version for Intel BSD based
systems, the executable is compiled and tested on FreeBSD 2.7.2.
27-Sep-1998:
Added a version for Alpha Linux. Also,
some late additions to Cheapo 2.4 broke many TF related features, including
the new class pointing. Deathmatching works fine though :) The bugs will
be fixed in the next release, but unfortunately not very soon.
22-Sep-1998:
Oops once again. The .weapon command
didn't work right (.weapon best didn't work at all). All the 2.4
files have been updated with a fix.
22-Sep-1998:
Version 2.4 now available (for
Win, Linux, Alpha and Sparc). In addition to squishing
known bugs, this version adds to Cheapo:
-
.notimer, see the chapters below this list for a description
-
soundtrigger, enabled with .sound <trigger character>
-
%S (your skin) and %C (your bottomcolor). Note the capital
letters.
-
color override (.color) to complement skin override, if you prefer
using noskins.
-
both skin override and color override accept * as a parameter meaning leave
some skins/color untouched. For example .skin * base would put
base skin to enemies, but leave teammate skins normal.
-
custom weapon select impulse orders, for example .weapon 10: 6 7
would define impulse 10 to be equivalent to "impulse 6 ; wait ; impulse
7"
-
.took pointed will report with f_took when you collect an item
you just pointed to (like if you say 'pack at ra' and take that pack it
will trigger 'took pack at ra').
-
.report show is an alternative to .report sync. It is
otherwise the same except that the powerup timer sync messages (Quad #1
picked up) are shown.
-
.stat command should now give correct ping and packet loss values
-
pointing now reports enemy class in TF (like 'enemy engineer at red base')
-
automarking is enhanced. In addition to naming things upper-item and lower-item
(if they are clearly such), other items are named item#. Item names are
also prefixed with the color of the nearest flag (like 'red ra3') if there
are flags in the map.
Then some notes about using proxies. These are my personal opinions, so
feel free to ignore them.
First, hand made marks are clearly superior to automarks made by a proxy.
Automarking is designed to be a rescue when you have to play a map you
don't usually play, or have lost your marks. Way too often I encounter
players who have automarked for example DM6 or DM2. It's a lot harder to
follow their messages, since the automarks are often misleading farther
away from important items. Maps like these are so common, that everyone
should have (or make) a good loc-file for them.
Another thing are the automatic reports. They are easily overused, since
it's so easy to put something like .took all in your config. The
fewer messages are sent, the better the communication usually is, because
then people have time to actually read the messages. Luckily most people
seem to understand this.
And finally the infamous timers. People still ask me about including
item timers to Cheapo. This won't happen. Instead, I'd rather see timers
disappear completely. But since powerup timers have been available in proxies
for long, there is little point in removing them. People would just use
an older version, or another proxy.
Games with timers are different than games without, with the former
concentrating more on timed attacks just before an item appears. Originally
I too preferred timers, since when learning to play they give you one less
thing to worry about. However, when more experienced players play with
timers enabled, the fights over a powerup turn more into a question of
who lands on the appearing quad with a rocketjump, instead of who has control
of the quad area. One solution to this issue will be randomizing the powerup
appearing times. I believe this feature is coming to the excellent teamplay
mod Kombat Teams.
Another possibility is the new feature .notimers. When
you give the command .notimers 1, timers are disabled. It is only
possible to change the timer mode when not connected, so if someone enters
the game with timers disabled, they will stay that way. Your choice of
not using timers is also shown in f_version reports, and on the
.who proxy command. Nothing is perfect though. Professional Cheaters
might be using a different proxy that just impersonates a notimers proxy.
But they could also be using a guy with a stopwatch.
You can also use the notimers on public servers as a way to tell other
people: I would rather play without timers. Of course, if some other players
are using timers and powerups are enabled, you'll be at a disadvantage.
But being a pioneer has never been easy :) Take it as a challenge!
Other site changes: updated the info page, which was pretty outdated
in regard to all the new features, and removed some FAQ's which were no
longer approriate.
30-Aug-1998:
Version 2.3 now available (for
Win, Linux, Alpha and Sparc). Most important changes
are:
-
Works with QuakeWorld 2.3
-
Pointing now works with more TF items (flags, keys, sentry guns, dispensers,
detpacks)
-
.report sync reports 'Quad #2 picked up.' style messages when
you hear a powerup being collected. This allows exact powerup syncronization
between players in the same team. It is compatible with Qizmo. Note that
Cheapo filters all sync messages so you won't see them, only their effect
on timers.
-
.report took reports messages like 'took rl at lower-rl' messages
when you collect items. The message shown is from the alias f_took which
can be user defined. The objects reported can be selected with the .took
command (default is RL, LG, GL and armors; note that powerups can
already be reported with .report power)
-
.who fps command shows approximate frame rates of all visible
players, and last known rates for others.
-
New message %m reports last picked item (%i) if less
than 5 sec ago, nearest item otherwise
-
Penta and Ring counters now display minutes instead of ??
if time is over 99 seconds (like P1:4M)
-
Rune reporting didn't work in V2.2 and I have now disabled it until it
is properly fixed.
-
Process priority is now higher in the Windows version. Manual adjustment
of the priority on Windows NT should no longer be necessary. This
might also help if you previously had problems with lower ping when running
cheapo and QuakeWorld on the same machine.
-
Problems with Linux name lookup on some systems fixed (thanks Perkele)
29-Aug-1998:
As a reply to all emails on the subject: Yes, I know QW 2.3 is out,
and a new Cheapo will be available tomorrow.
14-Aug-1998:
Many people have encountered the 'Internal Error' message in Cheapo.
This means the executable is corrupted, and this is usually caused by a
virus. Most of the time the virus has been CIH, which is so new that most
scanners don't yet recognize it. A program to check for the virus and clean
it is available from http://www.nai.com/vinfo/cih/cih_sfscan.asp.
Please try it before emailing me about the Internal Error message.
Oops again: in V2.2 the %w message reports ammo incorrectly
(the best weapon message %b works correctly).
12-Aug-1998:
Version 2.2 now available (for
Win, Linux, Alpha and Sparc). Most important changes
are:
-
Corrected reconnection bug during level changes (now also reconnects faster)
-
.fps explosion change now gives the correct sound in CTF and TF
-
Possible to set client and server interface (for multihomed hosts)
-
Optional password to limit proxy usage
-
Centering option for poweruptimers (.line 10 center)
-
Autoreport (.reply reply) no longer replies to faraway players
-
New message %r reports last location you reported with %l
-
Runes reported as powerups in CTF
Added new answers to the FAQ section on Windows NT,
Using GameSpy with Cheapo, and Starting Cheapo Minimized, Mac Version,
and Internal Error.
31-Jul-1998:
Oops. The help for %-messages (.help say)
has grown so large that the data packet overflows, and quakeworld disconnects
you from the proxy. Just avoid that command until the next version. You
can look at the list of %-commands on the Information
page.
28-Jul-1998:
Version 2.1 now available (for
Win, Linux, Alpha and Sparc). Most important
changes are:
-
The Linux version now works on older systems too (tested on RedHat 4.2
and 5.0)
-
The Windows version no longer reports 'Net Error' for some peoply immediately
when connecting
-
New team message: %d tells where you last died, and %L,
%O, %E (capitals) work like their lowercase versions except
that after death they remember the dying situation for 5 seconds (so pressing
'%L lost (%E enemies)' just after dying reports the situation
when you died, which is what you are usually trying to do).
-
Flood Protect Protect. The proxy performs flood protection so that you
cannot flood the server accidentally (and so you won't get any 10 sec or
longer penalty for flooding). Instead the proxy reports 'proxy: flood protect
protect' if you say things too fast. This is enabled by default, use
.flood 0 to disable.
-
The fps command has three new parameters: Setinfo filter, Nail filter and
Damage filter. Only the Damage filter is implemented, the other two are
present just to keep the .fps parameters compatible with Qizmo.
-
A new .cpps command can be used to limit the number of client
packets per second (so for example you can set cl_maxfps 72 and .cpps 50
to get more fps without overflowing your line). Note that this command
generates packet loss and can hurt the gaming experience (especially if
fps is over twice the cpps limit).
-
.move command can now be used to move the poweruptimer reminder
(in addition to moving small centerprint messages from the server). With
some viewsizes the default reminder is currently on top of the crosshair.
-
Kombat Teams join command works now, and if you are kicked from a server
(like when connecting to an ongoing game) you no longer drop out of the
proxy, only out of the server.
Added new answers to the FAQ section on Poweruptimers
and Source Code.
22-Jul-1998:
There have been problems with Cheapo on older Linux systems (having
different versions of libc than RedHat 5), and on some Windows systems
(resulting in 'Net Error (disconnected)' from the proxy). These issues
are known and should be resolved in the next release. It will take some
time though, since there are also other projects I have to work on.
Changed the .gz files (for Linux, Alpha and Sparc) to .tar.gz since
some browsers seemed to save the .gz files as text thus corrupting them.
If you had problems uncompressing the old files, try the new ones.
20-Jul-1998:
Version 2.0 now available (for
Win, Linux, Alpha and Sparc), and it's no longer
beta. In addition to fixing minor bugs, there are two bigger fixes and
one new feature:
-
The LOC-file limitations are removed. You can have as many locations with
as long names as you like, given you have enough memory.
-
There was a tracking bug in V1.9 beta that allowed cheating. In addition
to fixing the bug, 2.0 now warns about any players using Cheapo 1.9 with
such settings that cheating is possible (the warning does not necessarily
mean the user is cheating). To avoid being called a cheater by
a stupid computer program, it's best to upgrade to 2.0. Note also that
you can easily check what proxies players are using with the '.who
proxy'-command (it can't detect ProxyLite, but does detect Qizmo and
Cheapo).
-
With new command line parameters it is now possible to limit number of
users and the IP address they can come from (if you don't want everyone
using your proxy)
Added new answers to the FAQ section.
18-Jul-1998:
I have received some minor bug reports, but the only bigger problem
seems to be the large LOC-files people have that I didn't anticipate. I'll
wait and see if any other bugs come up during the weekend, and release
the 2.0 (nonbeta) version early next week. So don't worry, you will be
able to use those huge LOCs pretty soon. Also added to Information a section
on how the new %-messages can be used.
17-Jul-1998:
Reorganized these pages.
16-Jul-1998:
The first public release is 1.9 beta. It's still beta because it has
been used by only a handful of people and may contain bugs. The most
severe ones will be fixed before the first real version is released (when
it's done).