FreewarWiki:Bot/Skripts/maplist2wiki.pl: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
(analog, direkte verwendung von umlauten umgangen da mögliche zeichensatzprobleme -> unicode verwendung erzwungen)
(Fix: Fehler in HTML-Umlautcodierung)
Zeile 9: Zeile 9:
my $date = sprintf("%d.%d.%04d", $mday, $mon+1, $year+1900);
my $date = sprintf("%d.%d.%04d", $mday, $mon+1, $year+1900);


print "Einige Zauber und Funktionen in Freewar verraten die aktuelle Position eines Charakters in Form von Koordinaten. Gerade bei Feldern, die nicht zur oberirdischen Hauptlandmasse von Freewar geh\N{U+0026}ouml;ren, ist es oft schwer, herauszufinden, zu welchem Gebiet diese Koordinaten geh\N{U+0026}oumlren.<br />Die folgende Liste hilft dabei. Alle Koordinaten sind in der Form '''X''','''Y''' unter dem Namen des Gebiets gelistet, zu dem sie geh\N{U+0026}oumlren. So kann mit der Suchfunktion des Browsers leicht das Gebiet zu einer bestimmten Position ermittelt werden.<br />Die Liste ist automatisch aus den Wiki-Kartendaten erstellt (Stand $date) und wird evtl. bei Karten\N{U+0026}auml;nderungen oder Fehlern auch automatisch wieder neu generiert; \N{U+0026}Auml;nderungen an der Liste sind nicht sinnvoll. Stattdessen, wenn etwas auff\N{U+0026}auml;llt, bitte auf der Diskussionsseite vermerken.<br />";
print "Einige Zauber und Funktionen in Freewar verraten die aktuelle Position eines Charakters in Form von Koordinaten. Gerade bei Feldern, die nicht zur oberirdischen Hauptlandmasse von Freewar geh\N{U+0026}ouml;ren, ist es oft schwer, herauszufinden, zu welchem Gebiet diese Koordinaten geh\N{U+0026}ouml;ren.<br />Die folgende Liste hilft dabei. Alle Koordinaten sind in der Form '''X''','''Y''' unter dem Namen des Gebiets gelistet, zu dem sie geh\N{U+0026}ouml;ren. So kann mit der Suchfunktion des Browsers leicht das Gebiet zu einer bestimmten Position ermittelt werden.<br />Die Liste ist automatisch aus den Wiki-Kartendaten erstellt (Stand $date) und wird evtl. bei Karten\N{U+0026}auml;nderungen oder Fehlern auch automatisch wieder neu generiert; \N{U+0026}Auml;nderungen an der Liste sind nicht sinnvoll. Stattdessen, wenn etwas auff\N{U+0026}auml;llt, bitte auf der Diskussionsseite vermerken.<br />";


my %areas;
my %areas;

Version vom 20. Juli 2012, 02:43 Uhr

Dieses Script ist hier lediglich archiviert und nicht direkt lauffähig. Wenn Du es benutzen möchtest, musst Du es lokal abspeichern und mit einem geeigneten Interpreter ausführen lassen. Zum Übernehmen solltest Du nicht den unten angezeigten Text verwenden, sondern den Quelltext des Wiki-Artikels: Dazu wählst Du Bearbeiten und kopierst den (meist zwischen PRE-Tags eingefassten) Scripttext.

Sofern Du die Scripte dauerhaft lokal abgespeichert hältst, solltest Du sie vor der nächsten Ausführung darauf prüfen, ob sie noch aktuell sind.

Letzter Bearbeiter: 87.123.165.139 — Zuletzt bearbeitet: 20.07.2012
#!/usr/bin/perl
use strict;

#in: maplist

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

print "Einige Zauber und Funktionen in Freewar verraten die aktuelle Position eines Charakters in Form von Koordinaten. Gerade bei Feldern, die nicht zur oberirdischen Hauptlandmasse von Freewar geh\N{U+0026}ouml;ren, ist es oft schwer, herauszufinden, zu welchem Gebiet diese Koordinaten geh\N{U+0026}ouml;ren.<br />Die folgende Liste hilft dabei. Alle Koordinaten sind in der Form '''X''','''Y''' unter dem Namen des Gebiets gelistet, zu dem sie geh\N{U+0026}ouml;ren. So kann mit der Suchfunktion des Browsers leicht das Gebiet zu einer bestimmten Position ermittelt werden.<br />Die Liste ist automatisch aus den Wiki-Kartendaten erstellt (Stand $date) und wird evtl. bei Karten\N{U+0026}auml;nderungen oder Fehlern auch automatisch wieder neu generiert; \N{U+0026}Auml;nderungen an der Liste sind nicht sinnvoll. Stattdessen, wenn etwas auff\N{U+0026}auml;llt, bitte auf der Diskussionsseite vermerken.<br />";

my %areas;
while(<>) {
    next if (/^GET/);
    my($area, $accessible, $x, $y, $rest) = split(/;/);
    next unless($accessible);
    $areas{$area} = () if (!exists($areas{$area}));
    push(@{$areas{$area}}, "$x,$y");
}

foreach my $area (sort(keys(%areas))) {
    gendump($area, $areas{$area});
}

sub gendump
{
    my($area, $coords)=@_;
    print "<!--\n-->{{\N{U+00DC}berschriftensimulation 2|1={{Gebietslink|$area}} (".@{$coords}." Felder)}}";
    print join("; ", @{$coords});
}

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