Bearbeiten von „Benutzer:Count Ypsilon/Skript:maplist.pl

Zur Navigation springen Zur Suche springen

Achtung

Du bearbeitest diese Seite unangemeldet. Wenn du deine Änderung speicherst, wird deine aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit öffentlich einsehbar. Um effektiver mitarbeiten zu können und deine IP-Adresse zu verbergen, melde dich doch bitte an.

Speichere bitte keine Textversuche ab. Nutze stattdessen die Spielwiese, um dich im Umgang mit der Textverarbeitung im Wiki vertraut zu machen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 2: Zeile 2:


Spalte 1=Gebietsname (leer, falls es sich um ein nicht begehbares Grenzfeld handelt)
Spalte 1=Gebietsname (leer, falls es sich um ein nicht begehbares Grenzfeld handelt)
Spalte 2=0, wenn das Feld unbegehbar ist, 1, wenn es begehbar ist
Spalten 2/3=x und y
Spalten 3/4=x und y
Spalte 4=NPC-Name (Feld ist mehrfach in Liste, wenn mehrere NPCs, und einfach mit "none" in Spalte 4, wenn kein NPC)
Spalte 5=NPC-Name (Feld ist mehrfach in Liste, wenn mehrere NPCs, und einfach mit "none" in Spalte 4, wenn kein NPC)
Spalte 5=URL des Kartenfeld-Bildes
Spalte 6=URL des Kartenfeld-Bildes


Achtung - Grenzfelder zwischen zwei Gebieten können mehrfach in der Liste auftauchen, einmal mit gesetzten Gebietsnamen beim Gebiet, zu dem sie gehören, und vorher/nachher noch einmal mit leeren Gebietsnamen im Kontext des Gebiets, bei dem sie als Grenzfeld gelistet sind.
Achtung - Grenzfelder zwischen zwei Gebieten können mehrfach in der Liste auftauchen, einmal mit gesetzten Gebietsnamen beim Gebiet, zu dem sie gehören, und vorher/nachher noch einmal mit leeren Gebietsnamen im Kontext des Gebiets, bei dem sie als Grenzfeld gelistet sind.


<pre>
Achtung - Quelltext unten enthält ein paar "nowiki"-Tags; auf der Ansichtsseite ist es korrekt, aber wenn man aus der Bearbeiten-Seite kopiert, muss man die entfernen.
#!/usr/bin/perl


use strict;
  #!/usr/bin/perl
use LWP::UserAgent;
 
use URI::Escape;
  use strict;
use HTTP::Request;
  use LWP::UserAgent;
 
  use URI::Escape;
my $ua = LWP::UserAgent->new();  
  use HTTP::Request;
 
 
my $host = "http://www.fwwiki.de";
  my $ua = LWP::UserAgent->new();  
my $url = $host . "/index.php/Kategorie:Karten";
 
 
  my $host = <nowiki>"http://www.fwwiki.de"</nowiki>;
my $unbegehbar = {
  my $url = $host . "/index.php/Kategorie:Karten";
    "119;105" => 1, "120;105" => 1, "121;105" => 1, "119;106" => 1,
 
    "120;106" => 1, "119;107" => 1, "120;107" => 1, "119;108" => 1,
  while($url ne "")
    "120;108" => 1, "115;109" => 1, "116;109" => 1, "117;109" => 1,
  {
    "118;109" => 1, "119;109" => 1, "120;109" => 1, "113;110" => 1,
      #print "GET $url\n";
    "114;110" => 1, "115;110" => 1, "116;110" => 1, "117;110" => 1,
      my $request = HTTP::Request->new("GET", $url);
    "118;110" => 1, "119;110" => 1, "113;111" => 1, "114;111" => 1,
      my $response = $ua->simple_request($request);
    "115;111" => 1, "116;111" => 1, "117;111" => 1, "115;112" => 1,
      my $c = $response->content();
    "116;112" => 1, "116;113" => 1, "123;112" => 1,
      $url = "";
    "123;113" => 1, "123;115" => 1, "123;116" => 1, "123;117" => 1,
 
    "72;81" => 1, "73;81" => 1, "74;81" => 1, "75;81" => 1,
      while($c =~ /<a([^>]*)>([^<]*)<\/a>/gm)
    "70;82" => 1, "71;82" => 1, "72;82" => 1, "73;82" => 1,
      {
    "74;82" => 1, "75;82" => 1, "70;83" => 1, "71;83" => 1,
          my ($anchor, $text) = ($1, $2);
    "72;83" => 1, "73;83" => 1, "-308;-194" => 1,
          my $href;
    "98;99" => 1, "57;98" => 1, "59;98" => 1,
          $href = $1 if ($anchor =~ /href\s*=\s*"([^"]*)"/);
    "81;86" => 1, "81;85" => 1, "82;85" => 1, "83;85" => 1, "80;86" => 1,
          $href =~ s/&amp;/&/g;  
    "-314;-195" => 1, "-313;-195" => 1, "-314;-194" => 1, "-313;-194" => 1,
          my $title;
    "-828;-809" => 1, "-827;-809" => 1, "-828;-808" => 1, "-827;-808" => 1,
          $title = $1 if ($anchor =~ /title\s*=\s*"([^"]*)"/);
};
          $url = $host.$href if ($text =~ /n.*chste \d+/);
 
          fetchMap($1, $host.$href) if ($text =~ /Karte:\s*(.*)/);
while($url ne "")
      }
{
  }
    #print "GET $url\n";
 
    my $request = HTTP::Request->new("GET", $url);
  sub fetchMap
    my $response = $ua->simple_request($request);
  {
    my $c = $response->content();
      my ($text, $href) = @_;
    $url = "";
      my $request = HTTP::Request->new("GET", $href."?action=edit");
 
      my $response = $ua->simple_request($request);
    while($c =~ /<a([^>]*)>([^<]*)<\/a>/gm)
      my $c = $response->content();
    {
 
        my ($anchor, $text) = ($1, $2);
      my @lines = split(/\n/, $c);
        my $href;
      my $firstx;
        $href = $1 if ($anchor =~ /href\s*=\s*"([^"]*)"/);
      my $curx;
        $href =~ s/&amp;/&/g;  
      my $cury;
        my $title;
      my $opened;
        $title = $1 if ($anchor =~ /title\s*=\s*"([^"]*)"/);
      my $firstline = 1;
        $url = $host.$href if ($text =~ /n.*chste \d+/);
 
        fetchMap($1, $host.$href) if ($text =~ /Karte:\s*(.*)/);
      foreach my $line(@lines)
    }
      {
}
          next unless ($line =~ /\{\{Karte\/([^|{}\/]+)(\/([^|{}]+))?(\|([^{}]*))?\}\}(\{\{.*\}\})?/);
 
          my ($vorlage, $sub, $argl, $more) = ($1, $3, $5, $6);
sub fetchMap
          my @args = split(/\|/, $argl);
{
 
    my ($text, $href) = @_;
          if (!$opened)
    my $request = HTTP::Request->new("GET", $href."?action=edit");
          {
    my $response = $ua->simple_request($request);
              $opened = 1 if ($vorlage eq "Beginn");
    my $c = $response->content();
              next;
 
          }
    my @lines = split(/\n/, $c);
 
    my $firstx;
          if ($vorlage eq "Ende")
    my $curx;
          {
    my $cury;
              last;
    my $opened;
          }
    my $firstline = 1;
          elsif ($vorlage eq "NeueZeile")
 
          {
 
              $firstline = 0;
    foreach my $line(@lines)
              $curx = $firstx;
    {
          }
        next unless ($line =~ /\{\{Karte\/([^|{}\/]+)(\/([^|{}]+))?(\|([^{}]*))?\}\}(\{\{.*\}\})?/);
          elsif ($vorlage eq "Koord")
        my ($vorlage, $sub, $argl, $more) = ($1, $3, $5, $6);
          {
        my @args = split(/\|/, $argl);
              if (($firstline) && (!defined($firstx)))
       
              {
        if (!$opened)
                  $firstx = $args[0];
        {
              }
            $opened = 1 if ($vorlage eq "Beginn");
              else
            next;
              {
        }
                  $cury = $args[0];
 
              }
        if ($vorlage eq "Ort" || $vorlage eq "Passage")
          }
        # falls zusaetzliche Vorlagen in einer neuen Zeile notiert sind, naechste Zeile einlesen
          elsif ($vorlage =~ /^Feld\d*$/)
        {
          {
            next;
        }
 
        if ($vorlage eq "Ende")
        {
            last;
        }
        elsif ($vorlage eq "NeueZeile")
        {
            $firstline = 0;
            $curx = $firstx;
        }
        elsif ($vorlage eq "Koord")
        {
            if (($firstline) && (!defined($firstx)))
            {
                $firstx = $args[0];
            }
            else
            {
                $cury = $args[0];
            }
        }
        elsif ($vorlage =~ /^Feld\d*$/)
        {
             my $img = shift(@args);
             my $img = shift(@args);
 
             if ($img eq <nowiki>"http://85.10.193.197/freewar/images/map/black.jpg"</nowiki>)
             if ($img eq "http://welt1.freewar.de/freewar/images/map/black.jpg")
             {
             {
                 print "$text;0;$curx;$cury;;$img\n";
                 print ";$curx;$cury;;$img\n";
             }
             }
             else
             else
             {
             {
                push(@args, "none") if (scalar(@args) == 0);
              push(@args, "none") if (scalar(@args) == 0);
                my $begehbar = ($unbegehbar->{"$curx;$cury"}) ? 0 : 1;
              foreach my $npc(@args)
                foreach my $npc(@args)
              {
                {
                  print "$text;$curx;$cury;$npc;$img\n" unless ($npc =~ /^Alt=/);
                    if  (lc($npc) eq "none") { $npc = "" };
              }
                    print "$text;$begehbar;$curx;$cury;$npc;$img\n" unless ($npc =~ /^Alt=/);
                }
            }
            $curx++;
        }
        else
        {
            if ($vorlage eq "Berg")
            {
                my $img = "http://welt1.freewar.de/freewar/images/map/std.jpg";
                print "$text;0;$curx;$cury;;$img\n";
            }
            elsif ($vorlage eq "Grenzfeld")
            {
                my $img = shift(@args);
                print "$text;0;$curx;$cury;;$img\n";
            }
            elsif ($vorlage ne "Leer")
            {
                print STDERR "unbekannt: Vorlage '$vorlage' in '$text'\n";
                next;
             }
             }
             $curx++;
             $curx++;
        }
          }
    }
          else
}
          {
</pre>
              print STDERR "unbekannt: $vorlage in '$text'\n"
                  unless ($vorlage =~ /^(Berg|Leer|Grenzfeld)$/);
 
              if ($vorlage eq "Berg")
              {
                  my $img = <nowiki>"http://85.10.193.197/freewar/images/map/std.jpg";</nowiki>
                  print ";$curx;$cury;;$img\n"
              }
              elsif($vorlage eq "Grenzfeld")
              {
                  my $img = shift(@args);
                  print ";$curx;$cury;;$img\n"
              }
 
              $curx++;
          }
      }
  }

Bitte beachte, dass alle Beiträge zu Chaos FreewarWiki von anderen Mitwirkenden bearbeitet, geändert oder gelöscht werden können. Reiche hier keine Texte ein, falls du nicht willst, dass diese ohne Einschränkung geändert werden können.

Du bestätigst hiermit auch, dass du diese Texte selbst geschrieben hast oder diese von einer gemeinfreien Quelle kopiert hast (weitere Einzelheiten unter FreewarWiki:Urheberrechte). ÜBERTRAGE OHNE GENEHMIGUNG KEINE URHEBERRECHTLICH GESCHÜTZTEN INHALTE!

Bitte beantworte die folgende Frage, um diese Seite speichern zu können (weitere Informationen):

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)