#!/usr/local/bin/perl
# fclan will create the clan data files for existing players.
# This does not need to be run on a new game, or after a pwipe,
# only if you are keeping pfiles from an existing pre 1.4 game.
#
# To use: in your /Rot/player directory, first use the following
# command: ls -1 >../names.txt
# then, in /Rot use: ./src/fclan
#
# You must have read/write permission to /Rot, /Rot/area & /Rot/player
# You must also have an installed copy of perl 5.x, change the first
# line of this file if perl is installed in a different location.
undef %Clead;
undef %Clan;
undef @Names;
open(INFILE, "names.txt");
while (<INFILE>) {
chomp;
push(@Names, $_);
}
close INFILE;
foreach $name (sort(@Names)) {
print $name,"\n";
undef @Lines;
open (INFILE, "player/$name");
while (<INFILE>) {
chomp;
push(@Lines, $_);
}
close INFILE;
foreach $tmp (@Lines) {
($type,$data)=split(' ', $tmp);
if ($type eq "Name") {
chop $data;
$vname = $data;
}
if ($type eq "Clan") {
chop $data;
if (defined($Clan{$data})) {
$Clan{$data}++;
} else {
$Clan{$data}=1;
}
}
if ($type eq "Clead") {
chop $data;
if (defined($Clead{$data})) {
$Clead{$data} .= "${vname}\n";
} else {
$Clead{$data} = "${vname}\n";
}
}
}
}
foreach $tmp (sort(keys(%Clan))) {
open (OUTFILE, ">area/${tmp}.cln");
$members = $Clan{$tmp};
print OUTFILE "${members}\n";
if (defined($Clead{$tmp})) {
$leaders = $Clead{$tmp};
print OUTFILE "${leaders}";
}
close OUTFILE;
}
exit;