QUICKSPY2 by David Efflandt (plays Quake as Maxima) Released 2/5/98 Script Update 1/18/99 A Linux Quake 2 Server Browser Based on Quickspy QW browser by Rob Tansley Welcome to the world of QuickSpy2. It uses QStat, a program by Steve Jankowski (steve@activesw.com), the Qstat homepage can be found at http://www.activesw.com/people/steve/qstat.html Cheers Steve, you made this program possible! REQUIREMENTS This software has been tested on Linux 2.0.33 in Slackware 3.3, and kernel versions that come with Redhat 4.2, 5.2 and Debian 1.3 (see Debian guage problem below). It should work on any Linux 2.*, provided the "dialog" command and perl 5 are installed. To see if you have dialog, type "which dialog", if it's found, then QuickSpy2 should work. Also make sure that the first line of the script points to your "perl". INSTRUCTIONS FOR USE Put Quickspy2 in your Quake2 directory and rename without the '.pl' extension (or call it whatever you want). Edit the script for your Quake2 path and parameters, or launch script. You also need "qstat" there or somewhere in your path. To run Quickspy2 just, connect to the internet (autoconnect may lose some servers) enter the Quake2 directory and type "./quickspy2" *IN A VIRTUAL TERMINAL, NOT X*. First you'll be asked to select a server list. You can select a particular web list, refresh from all web lists or your own list from a file menu. You may want to refresh from the web list(s) occasionally for updates. It works works with simple lists of one IP|hostname[:port] per line, with or without 'Q2 ' prefix, and html lists plain or in a table. You can add html sources to the $sources list. Let me know if there are any commonly available lists that do not work. This has been updated to enable getting lists from virtual hosts. Once you have used Quickspy2, you can choose a Full List of resolved IP addresses from the list you used last or a shortened Low Ping List. The full list has all hostnames resolved for quicker response. The low ping list only has servers that responded within a set $maxping rate. To use these right from the command line use "-l" switch for low ping list or "-f" for last full list. Quickspy2 (well, ok, QStat) will then query the chosen list and ping the servers. You can change the number of servers QStat pings simultaneously by changing the $maxs variable at the top of the Quickspy2 script. Dialog guages indicate progress while resolving IP addresses and polling servers. After a while, you should see a server list, sorted by ping. Select one that looks cool, with lots of players and a low ping. You'll then be shown information about that server, including players and server rules. You can cancel this dialogue to go back to the server list without joining the server, OKing it takes you to a menu of run configurations (if more than one) or directly to the Quake2 server. Cancelling the server list dialogue lets you choose another source list (or refresh the server list you have). Cancelling the server list dialogue exits QuickSpy2. SAMPLE RUNQ2 SCRIPT FOR 3DFX (Monster 3D) This script kills gpm (restored on exit). Your settings may vary. Additional 3Dfx tweaks (that made no difference for me) may help newer machines. There is also a gl_swapinterval setting in config.cfg that may make a slight difference if zero (gl_ext_swapinterval must be 1 for gl_swapinterval setting to be effective). #!/bin/sh killall gpm export SST_SCREENREFRESH=60 export SST_GRXCLK=57 export FX_GLIDE_NO_SPLASH=1 export FX_GLIDE_SWAPINTERVAL=0 ./quake2 +set cd_dev /cdrom +set nocdaudio 1 $@ gpm -t ps2 & PROBLEMS 1/18/98 Dialog guage does not work in RedHat 5.x or certain Debian versions, so default is now text status with variable to enable guage status. Added filter to eliminate sh backtick error with some data returned from qstat. Updated to enable getting server lists from virtual servers. 3/15/98 Added alternate $maxping2 to try only if $maxping fails and message if no servers are within $maxping2. 3/7/98 changed 'die' to 'warn' if web server refuses connection. Was not apparent until planetquake was down for 3 hours for rewiring. For status meter trouble change $gage = 1; to $gage = 0; in User Variables for text status. Debian dialog-0.9a (cdialog-0.9a) has a broken guage.c that hangs (Ctrl-C may allow it to continue). I contacted author of cdialog, so that should be fixed in later versions. $gage = 0; also solves "broken pipe" problem with RedHat 5.x. If your guage is broken download and compile the original dialog-0.6z (or current) source (/utils/shell). Q2 server lists are long and slow so it may take a few minutes. I do set a time limit for looking up slow or bogus hostnames and the script eliminates duplicates. You must connect to the internet before using Quickspy2 (unless using web lists). Autoconnecting using /sbin/request-route may not work with an IP list or may drop some servers due to $timeout for name resolution. If anyone knows of a quick and reliable method to determine if a machine is connected to the internet so I can issue a warning if not, I would appreciate hearing about it. If you have any problems please provide details on what Linux distribution and version (Slackware, RedHat, etc), what shell (bash, csh, etc) and versions of kernel, dialog and qstat. It may also help to include a copy of the variables at the beginning of the script. It is easy to overlook your own typing error. HELLOS AND THANK YOUS Well first of all, of course, thank you id for producing this most mental of games. Also thank you Dave "Zoid" Kirsch for Linux QuakeWorld, CTF4 and Quake2. And thank you Steve Jankowski for writing QStat. Thank you Rob Tansley for the original Quickspy. Although development has been discontinued, it gave me a foundation to build on and carry on the torch. ORIGINAL QUICKSPY FOR QUAKEWORLD E-Mail: rob@soton.ac.uk QuickSpy homepage: http://www.ecs.soton.ac.uk/~rht96r/quake/quickspy/ CONTACT THE QUICKSPY2 AUTHOR E-mail me with any bugs or suggestions you have. I would also like to hear from you if you found this script useful for its intended purpose or learned something about Perl you could use in your own scripts. E-Mail: efflandt@xnet.com Quickspy2 home: http://www.xnet.com/~efflandt/quickspy2/