Benutzer:Count Ypsilon/Skript:maplist2wiki.pl: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
K (der Server scheint leistungsfähiger - ein Eintrag pro Zeile kann als diff angezeigt werden)
K (wenn die Einträge durch Zeilenumbruch getrennt werden, funktioniert der Gesamtkarten-Crossmod nimmer...)
 
Zeile 57: Zeile 57:
     my($a,$b)=@_;
     my($a,$b)=@_;
     print "{{Überschriftensimulation 2|1={{Gebietslink|$a}}}}";
     print "{{Überschriftensimulation 2|1={{Gebietslink|$a}}}}";
     print join("; ", @{$b}) . "\n";
     print join("; ", @{$b});
}
}


print "[[Kategorie:Allgemeines]][[Kategorie:Karten|!Koordinaten (Liste)]]\n";
print "[[Kategorie:Allgemeines]][[Kategorie:Karten|!Koordinaten (Liste)]]\n";
</pre>
</pre>

Aktuelle Version vom 29. Januar 2009, 02:57 Uhr

Skript zur Generierung des Inhaltes der Seite Koordinaten (Liste) aus der Ausgabe des Skripts Benutzer:Count Ypsilon/Skript:maplist.pl.

#!/usr/bin/perl
#

#in: maplist

my $lg;
my $koo=[];

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $date = sprintf("%d.%d.%04d", $mday, $mon+1, $year+1900);

print << "EOT";
Einige Zauber und Funktionen in Freewar verraten die aktuelle Position eines
Charakters in Form von Koordinaten. Die folgende Liste hilft dabei, das Gebiet
zu ermitteln, zu dem die entsprechenden Koordinaten gehören.

Alle Koordinaten sind in der Form '''X''','''Y''' unter dem Namen des Gebiets
gelistet, zu dem sie gehören. So kann mit der Suchfunktion des Browsers
leicht das Gebiet zu einer bestimmten Position ermittelt werden.

Die Liste ist automatisch aus den Wiki-Kartendaten erstellt (Stand $date)
und wird evtl. bei Kartenänderungen oder Fehlern auch automatisch wieder
neu generiert; Änderungen an der Liste sind nicht sinnvoll. Stattdessen,
wenn etwas auffällt, bitte auf der Diskussionsseite vermerken.
EOT

my $lk;
while(<>)
{
    next if (/^GET/);
    my($gebiet,$begehbar, $x,$y,$npc,$rest) = split(/;/);
    next if ($npc =~ /^Ort|Wiedergeburt/);
    next unless($begehbar);
    if (($lg ne $gebiet) && (defined($lg)))
    {
        if ($lg ne "Dummyplace")
        {
            gendump($lg, $koo);
        }
        $koo=[];
    }
    $lg=$gebiet;
    my $k="$x,$y";
    if ($k ne $lk)
    {
        $lk=$k;
        push(@{$koo}, $k);
    }
}
gendump($lg, $koo);

sub gendump
{
    my($a,$b)=@_;
    print "{{Überschriftensimulation 2|1={{Gebietslink|$a}}}}";
    print join("; ", @{$b});
}

print "[[Kategorie:Allgemeines]][[Kategorie:Karten|!Koordinaten (Liste)]]\n";