id Software's Usenet Group Posts Archive!

quake/articles/1997/art-1141



Path: mantis!not-for-mail


From: fritz@tecs.de (J.F.Niebuhr)


Newsgroups: rec.games.computer.quake.announce


Subject: The Ultimate GibStats for Quake


Date: 3 Mar 1997 21:09:49 -0000


Organization: CompuServe Incorporated


Lines: 269


Sender: moderate@jobstream.co.uk


Approved: quake@mantis.co.uk


Message-ID: <5fe4hf$sjj@hil-news-svc-5.compuserve.com>


Reply-To: fritz@tecs.de



GibStats has been released on ftp.cdrom.com - Quake - utils\stats




Title : GibStats for Quake and CTF


Filename : Gibstats.zip


Version : Beta 0.7 (for W95, Quake and CTF (ThreeWave))


Date : 02/03/97


Author : Fritz Niebuhr


Email : fritz@tecs.de


Credits : id software, ThreeWave, Dave (Zoid) Kirsch, Nick Maher


Beta testing: Jan (RoadRunner), TC, Holle, Rassi




Features (short)


----------------


- analysis of QConsole.log


- all frags, deaths, suicides, flag captures etc are stored in a


database


- all maps may be viewed as tables or graphs


- all maps may be exported to html or tabbed tables


- scores for blue and red team can be displayed as tables or graphs


- player vs. player view


- efficiency and skill are calculated


- all data may be stored on disk and reloaded


- adding, renaming, deleting and storing of maps


- adding, renaming, deleting and storing of players


- automatic player name detection


- history of player ...


and much more




Description of GibStats


---------------------


We wanted to know who is the best, on which map one is the best.


Everything about scoring in CTF as well. With this program you can


analyse a game of quake. The data is separated into the different


games and maps which were played. Totals of a games, maps and of all


games ever played can be displayed. Furthermore you can export any


table to Netscape to be printed.


I started this project, because there was no program that was also


analysing CTF (ThreeWave), no program to print scores later. And our


dedicated server always stooped for a half a second when logs where


transferred to disk. Therefor it analyses the client's log. As it is


not a Quake-C patch you can run Quake with any patch or even analyse


an Internet game.


The GibStats works also fine with ReaperBots and the CTFBots. Toggle


normal names when using the CTFBots. Otherwise you are going to end up


with too many players.




How to Install and Run


----------------------


VB40032.dll and MFC40.dll


You need the files "vb40032.dll" and "mfc40.dll" in your W95 system


directory. They are not included in this archive. You might have them


already on your hard disk. Have a look for them. In case you don't


have them, you can download them from the following sites (there are


many other sites):



VB40032.dll is available at:


http://www.sandsol.com/osl/vb40032.htm


http://www.softseek.com/Utilities/VBRUN_Files/Review_6057_index.html


ftp://ftp.simtel.net/pub/simtelnet/win95/dll/vb40032.zip



MFC40.dll is available at:


http://www.trc-circuits.com/download.htm


http://www.cs.washington.edu/homes/erask/mfc.zip



Once you have these files in your Windows/System directory:



1. Unzip the Gibstats.zip into a temporary directory. Run the


Setup.exe and install GibStats.



2. Play a lot of Quake with some friends, ReaperBots or the CTFBots


(or load the "player1.dat" demo file). You have to start one or the


client with the parameter "-condebug", for example: quake -winmem 24


-game ctf -condebug. Don't try the dedicated server log. It will not


work.



3. You will find either in the "quake\id1" or "quake\ctf" directory


(or any other directory where the patch is located which you played) a


file called "qconsole.log" move this file into the same directory in


which GibStats.exe is located (rename it if you want to keep it).



4. Now start GibStats.exe.



5. Select File/Add Quake log.



6. Select the file containing the log (which is qconsole.log unless


you renamed it, which you may want to do if you have more than one).



7. Type in the name and/or date of the game you want to add.



8. Now the log will be analysed and displayed.



9. Save the data (Save Database).



10. Once the data is saved by you, you don't need the qconsole.log


file any more. Keep it in case you want to read the logs into future


versions of this program.




FEATURES


--------


Added in 0.7


- Removed Map History


- Added Graph: everything is now displayable as a graph.


- killed some bugs



Added in 0.65


- CTF team scores are displayed


- game history for CTF games


- Map History now also for Games and All Games


- Export (bmp / printer) for Graph


- Options: number of players and maps


- some bugs



Added in 0.6


- kills and suicides of a map as a graph (Map History)


- correct recalculation of skill when Map is deleted


- correct recalculation of skill when Player is deleted


- correct recalculation of skill when Player is deleted only from one


Map


- some bugs



Added in 0.5


- automatic player name recognition


- skill is calculated


- some bugs



Displaying Scores


- each qconsole.log (of the client) is stored as a game divided into


the maps played


- each map can be viewed as a two dimensional table of who fraged who


how many times


- each map includes scores of each player for CTF (ThreeWave)


- suicides of each player are displayed


- totals and efficiency (frags*100/(deaths + frags)) are displayed for


each map/game/all games played


- map names with special characters are translated correctly


- totals for all maps in a game are displayed as they are for the maps


- totals for all games are displayed the same way as for maps


- all data is stored in a database


- logs (games) can be added at any time


- ranking of any map or game or all games by kills, deaths etc. can be


displayed


- Player vs. Player display where only two players and their scores


are displayed


- maps with only one player are not transferred into the database


- players with a zero frag score are not displayed


- League table whereby a player gets points according to the number of


players in the game and his rank at the end of the game (4th rank with


12 players in game = 8 points)


- History of the efficiency of a player displayed by maps displaying


each time his opponents and their efficiency



Exporting Data


- every map, game, all games or rankings can be exported to HTML or


tabbed tables(for spreadsheets)



Options


- add/delete/rename players


- individual maps and games can be deleted


- automatic filtering out of maps below a certain score and with less


than 2 players


- each player can be removed from the display (keeping him in the


database)


- option to automatically subtract suicides from kills


- several databases can be created




To Do


-----


- better team support?


mail suggestions to: fritz@tecs.de





The Rest


--------


Play around with the different options. The only things which might


not be obvious are:



1. Exporting Data


Export creates a file called "qresults.htm" or "qresults.xls". Load it


into Netscape or a spreadsheet and you can print out your data.



2. Minimum Points per Map


In View/Options you can specify the minimum amount of points a level


has to have to be included into the database. I included this because


we often played around with a level for a few minutes to get used to


it before starting the real game. The function filters out all these


maps automatically.



3. Option of patched Version


The Problem:


ThreeWave CTF does not log an enemy flag carrier frag (2 bonus frags)


on all client screens, but only on the client which scores the bonus.


Therefor the score for enemy flag carrier frags is not correct for all


players except for the player whos qconsole.log is analysed. All


scores will be logged correctly.


The Solution:


a. You can recompile the source of the CTF Threewave patch after


replacing the client.qc with the client.qc which comes with this


archive. Then you have to check in "Options" the "patched Version"


(see below for how to recompile).


b. You don't do anything about it. In that case GibStats will log each


time when someone is fragged and is logged to have lost the flag right


afterwards as an enemy flag carrier bonus. This logging is not 100%


correct as a bonus is not given in all these cases, but only if the


enemy flag carrier had carried the flag for a certain time. You will


end up with too many points for enemy flag carrier frags. You are


going to end up with too many points.



4. Skill Calculation


Skill is calculated according to the current skill of each player.


Therefor one has to add the logs in the right order.



5. Table Abbreviations


F = Flag


FC = Flag Carrier



6. Scoring System of CTF


Look into CTF readme file or the teamplay.qc file in the scr directory


of CTF.




Limitations


-----------


Only 30 Players are allowed.




Bugs ....


---------


Please mail any ideas, bugs, etc. to: fritz@tecs.de


Tell me what you like and don't like about the program.


In case of bugs attach the data file created by GibStats!



How to Recompile


----------------


Make a new sub directory (eg. CTFP) in your Quake directory. Copy all


files that come with the CTF patch into that directory. Move the


client.qc file that comes with this program into the sub directory


"scr" (overwriting the old client.qc). Recompile the source with a


Quake-C compiler like Advqcc (ftp.cdrom.com in /.11/idgames2/). Now


move the recompiled progs.dat into the new CTF directory.


Now run Quake with -game name of the sub directory you created (e.g.


ctfp). Note that from now onwards you have to check the patched


version option in GibStats.


If you have no idea what all this meant than try it but make a backup


copy of everything before or don't do it.




Copyright and Distribution Permissions


--------------------------------------


The program GibStats.exe included in this archive is Copyright 1997,


Fritz Niebuhr.


You may distribute this program in any electronic format as long as


all the files in this archive remain intact and unmodified and is


distributed together and there is no charge for the distribution.




Disclaimer


----------


The author cannot be held responsible for whatever damage might occur


through the use or malfunction of this program.