#!/usr/bin/perl # Quit if no working directory! if ($ARGV[0] eq "") { exit 0; } # Set autoflush on output so it isn't delayed \ getting back to the mud. use IO::Handle; STDOUT->autoflush(1); # Variables. $racemaxavg{'Human'} = "15.0"; $racemaxavg{'Halfling'} = "15.0"; $racemaxavg{'Elf'} = "15.0"; $racemaxavg{'Drow'} = "15.0"; $racemaxavg{'Dwarf'} = "15.0"; $racemaxavg{'Gnome'} = "15.2"; $racemaxavg{'Orc'} = "15.0"; $racemaxavg{'Ogre'} = "15.0"; $racemaxavg{'Aviaran'} = "15.2"; $racemaxavg{'Centaur'} = "15.0"; $racemaxavg{'Gith'} = "15.2"; $racemaxavg{'Tsarian'} = "15.0"; $racemaxavg{'Troll'} = "15.2"; # Main loop. $stage = 0; while () { if ($_ =~ /^.*please choose a name for your character:.*$/) { if ($stage eq 0) { $stage = 1; } } if ($_ =~ /^.*Stats for [A-Za-z0-9_-]+ the ([A-Za-z]+) ([A-Za-z]+):.*$/) { if ($stage eq 1 || $stage eq 4) { $stage = 2; $race = $1; $class = $2; } else { exit 0; } } if ($_ =~ /^.*Average of Stats\s*:.*(\d\d\.\d+).*The normal.*$/) { if ($stage eq 2) { $stage = 3; $avg = $1; } else { exit 0; } } if ($_ =~ /^.*this character\?\s+\(Return rerolls, 'Y' keeps\):.*$/) { if ($stage eq 3) { $stage = 4; if ($avg eq $racemaxavg{$race}) { printf "y\n"; } else { printf "\n"; } } else { exit 0; } } if ($_ =~ /^.*Press return to continue:.*$/) { if ($stage eq 4) { exit 0; } } } exit 0;