Mercurial > hg > batmud > misc
changeset 216:f121fb47c65f misc
Implement support for gathering skill information. Only 'grapple' is
supported at the moment, tho.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 05 Aug 2011 22:27:16 +0300 |
parents | e0a4ddf06d79 |
children | 138a3143a1fd |
files | log2template.pl |
diffstat | 1 files changed, 36 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/log2template.pl Sun Jul 31 06:05:28 2011 +0300 +++ b/log2template.pl Fri Aug 05 22:27:16 2011 +0300 @@ -170,6 +170,7 @@ my %monsters = (); my %aligns = (); my %spells = (); +my %skills = (); my %races = (); my %ids = (); @@ -526,6 +527,9 @@ # Error, reset parsing state set_state(0, $s); } + elsif ($s =~ /^([A-Za-z][A-Za-z\ -]+?) starts grappling [A-Z][a-z]+\.$/) { + $skills{$1}{$line} = "grapple"; + } } @@ -720,9 +724,39 @@ print $$mob{"area"}; } + +print "\n"; + + # Skills + my $hasskills = 0; + if (defined($skills{$mname}) && length($mname) >= 4) { + my $maxdist = length($mname) * 150 * length($mname); + my $mindist = length($mname) * -5 * length($mname); + my %mskills = (); + foreach my $sline (sort { $a <=> $b } keys %{$skills{$mname}}) { + my $offs = $sline - $mline; +# print STDERR "TEST $mname @ $offs vs $mindist...$maxdist : '".$skills{$mname}{$sline}."'\n"; + if ($offs < $maxdist && $offs > $mindist) { + print STDERR "SPELL $mname \@ $offs / $mindist...$maxdist : '".$skills{$mname}{$sline}."'\n" if ($opt_debug); + $mskills{$skills{$mname}{$sline}} = 1; + $hasskills++; + } + } + my $n = 1; + foreach my $skill (sort { $a cmp $b } keys %mskills) { + print "| skill".($n < 2 ? "" : $n)." = $skill\n"; + $n++; + } + } + +unless ($hasskills > 0) { +print "| skill = +| skill# = +"; +} + + print " -| skill = -| skill# = | exp = "; if (defined($$mob{"exp"})) {