Mercurial > hg > batmud > misc
view skinstats.pl @ 374:10d030b85117 misc tip
Switch Convent map to SVG version, add link to PNG render to the caption.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 01 Mar 2024 10:02:38 +0200 |
parents | 3a10a6ac7ec6 |
children |
line wrap: on
line source
#!/usr/bin/perl -w use strict; my $corpse_set = 0; my $corpse_name; my %pieces = (); my %rpieces = (); my %rcorpses = (); my $rtotal = 0; while (<STDIN>) { chomp; if (/^This is the dead body of ([A-Z][a-z ]+)\.$/) { $corpse_name = $1; $corpse_set = 1; } elsif (/^([A-Z][a-z ]+) is DEAD, R.I.P\.$/) { $corpse_name = $1; $corpse_set = 1; } elsif (/^You create a ([a-z]+) [a-z]+ by skinning the corpse\.$/) { my $piece_name = $1; if ($corpse_set) { $pieces{$corpse_name}{$piece_name}++; $rcorpses{$corpse_name}++; $rpieces{$piece_name}++; $rtotal++; } $corpse_set = 0; } } print "--------------------------------------\n"; for my $k1 (sort { $a cmp $b } keys %pieces) { if ($rcorpses{$k1} >= 20) { printf "%-15s [%3d]: ", $k1, $rcorpses{$k1}; for my $k2 ( sort { $a cmp $b } keys %{$pieces{$k1}} ) { printf "%s=%1.1f%% | ",$k2, (($pieces{$k1}{$k2} * 100) / $rcorpses{$k1}); } print "\n"; } } print "--------------------------------------\n"; for my $k1 (sort { $a cmp $b } keys %rpieces) { printf "%-15s: %d (%1.1f%%)\n", $k1, $rpieces{$k1}, (($rpieces{$k1}*100)/$rtotal); } print "--------------------------------------\n";