Kategorien
Benutzer:Count Ypsilon/Skript:maplist2wiki.pl: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(version passend zu neuem maplist.pl) |
K (wenn die Einträge durch Zeilenumbruch getrennt werden, funktioniert der Gesamtkarten-Crossmod nimmer...) |
||
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Skript zur Generierung des Inhaltes der Seite [[Koordinaten (Liste)]] aus der Ausgabe des Skripts [[Benutzer:Count Ypsilon/Skript:maplist.pl]]. | Skript zur Generierung des Inhaltes der Seite [[Koordinaten (Liste)]] aus der Ausgabe des Skripts [[Benutzer:Count Ypsilon/Skript:maplist.pl]]. | ||
<pre> | |||
#!/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"; | |||
</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";