The Perl Advent Calendar needs more articles for 2022. Submit your idea today!

NAME

  Games::Quake::Log - information gleaned from the output of a Quake2 DM log

SYNOPSIS

  my $q_log = Games::Quake::Log->new($log_file_with_dir_path_if_necessary);

  my %kills        = %{ $q_log->kills        };
  my %suicides     = %{ $q_log->suicides     };
  my %game         = %{ $q_log->game         };
  my %time_in_gmae = %{ $q_log->time_in_game };
  my %frequency    = %{ $q_log->frequency    };

DESCRIPTION

This module parses the log file generated by Quake2 from one of the standard logging mods. (Personally, I use sl_dm.)

When instansiated with a log file, you can ask for certain information. This is all the information that the log file has. So, if you want to make stats, just rearrange into different ways!

kills

  my %kills = %{ $q_log->kills };

This returns a hash, in the following format: $kills{$gameid}{$victor}{$victim}{$weapon} = $total_kills

game

  my %game = %{ $q_log->game };

This returns a hash in the following format: $game{$gameid}{$game_flag} = $value

suicides

  my %suicides = %{ $q_log->suicides };

This returns a hash in the following format: $suicides{$gameid}{$who}{$how_they_killed_themselves} = $total

time_in_game

  my %time_in_game = %{ $q_log->time_in_game };

This returns a hash in the following format: $time_in_game{$gameid}{$who}{'time'} = $time_in_secs

frequency

  my %freq = %{ $q_log->frequency };

This returns a hash in the following format: $freq{$gameid}{$when_in_game} = ($victor, $victim)

number_of_games

  my $number_of_games = $q_log->number;

Self-evident, really.

BUGS

A few bizarre things happen sometimes.

TODO

Extend to cope with other mods, like CTF et al.

SUPP INFO

This is the 'return-a-hash' version of this module. I originally wrote it with Class::DBI so I could store all the info in a mySQL database for a bit of persistence. If you want that version, mail me and I can send it on, with table definitions and everything!

AUTHOR

  StrayToaster <quake@stray-toaster.co.uk>