Bearbeiten von „FreewarWiki:Bot/Skripts/cf.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 1: Zeile 1:
{{Scriptquelltextverwendung}}
dVIprh  <a href="http://tniddjisvfxc.com/">tniddjisvfxc</a>, [url=http://hggxcpxkvqqu.com/]hggxcpxkvqqu[/url], [link=http://oamqcocisjsu.com/]oamqcocisjsu[/link], http://tqlbaberxpkt.com/
<pre>
#!/usr/bin/perl
 
use strict;
 
# Erstelle Ausgabe-Verzeichnis
my $cache_dir = "./cf/";
if (!-e $cache_dir)
{
    my $made_dir = mkdir($cache_dir, 0777);
    die("unable to create $cache_dir") if ($made_dir != 1);
}
 
my $cfs = [
  { "name" => "Angriffsenergie", "gw" => 28000, "mx" => 10, "step_Gesamtlernzeit" => 1 },
  { "name" => "Auftragsbeziehung", "gw" => 28000, "mx" => 40, "step_Gesamtlernzeit" => 5 },
  { "name" => "Auftragsplanung", "gw" => 2380, "mx" => 70, "step_Gesamtlernzeit" => 10 },
  { "name" => "Ausgrabungswissen", "gw" => 10500, "mx" => 70, "step_Gesamtlernzeit" => 10 },
  { "name" => "Bankwesen", "gw" => 9800, "mx" => 80, "step_Gesamtlernzeit" => 10 },
  { "name" => "Bauwesen", "gw" => 8750, "mx" => 90, "step_Gesamtlernzeit" => 10 },
  { "name" => "Blutwissen", "gw" => 9100, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Chaosmagie", "gw" => 8750, "mx" => 90, "step_Gesamtlernzeit" => 10 },
  { "name" => "Diebstahlschutzwissen", "gw" => 9800, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Getreideverarbeitung", "gw" => 5600, "mx" => 30, "step_Gesamtlernzeit" => 5 },
  { "name" => "Gewebeforschung", "gw" => 4060, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Goldabbau", "gw" => 15400, "mx" => 30, "step_Gesamtlernzeit" => 10 },
  { "name" => "Goldraub", "gw" => 6000, "mx" => 100, "step_Gesamtlernzeit" => 10 },
  { "name" => "Gold-Inspiration", "gw" => 9000, "mx" => 100, "step_Gesamtlernzeit" => 10 },
  { "name" => "Glück", "gw" => 5600, "mx" => 15, "step_Gesamtlernzeit" => 1 },
  { "name" => "Gruppenheilung", "gw" => 2520, "mx" => 120, "step_Gesamtlernzeit" => 10 },
  { "name" => "Handwerkskunst", "gw" => 70000, "mx" => 17, "step_Gesamtlernzeit" => 1 },
  { "name" => "Innere Macht", "gw" => 12600, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Inspiration", "gw" => 9450, "mx" => 90, "step_Gesamtlernzeit" => 10 },
  { "name" => "Jagd", "gw" => 8120, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Kochkunst", "gw" => 7700, "mx" => 80, "step_Gesamtlernzeit" => 10 },
  { "name" => "Labortechnik", "gw" => 42000, "mx" => 30, "step_Gesamtlernzeit" => 1 },
  { "name" => "Lagerlogistik", "gw" => 8750, "mx" => 90, "step_Gesamtlernzeit" => 10 },
  { "name" => "Lebensenergie", "gw" => 9100, "mx" => 30, "step_Gesamtlernzeit" => 5 },
  { "name" => "Lebenstraining", "gw" => 11900, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Lerntechnik", "gw" => 12250, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Magieverlängerung", "gw" => 16800, "mx" => 30, "step_Gesamtlernzeit" => 5 },
  { "name" => "Marktwirtschaft", "gw" => 3500, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Ölverwaltung", "gw" => 9100, "mx" => 60, "step_Gesamtlernzeit" => 10 },
  { "name" => "Phasenenergieeffizienz", "gw" => 8050, "mx" => 70, "step_Gesamtlernzeit" => 10 },
  { "name" => "Phasenenergiemaximierung", "gw" => 8750, "mx" => 80, "step_Gesamtlernzeit" => 10 },
  { "name" => "Pflanzenkunde", "gw" => 14000, "mx" => 80, "step_Gesamtlernzeit" => 10 },
  { "name" => "Phasenverständnis", "gw" => 3500, "mx" => 70, "step_Gesamtlernzeit" => 10 },
  { "name" => "Plünderung", "gw" => 13020, "mx" => 30, "step_Gesamtlernzeit" => 5 },
  { "name" => "Rache", "gw" => 3500, "mx" => 80, "step_Gesamtlernzeit" => 10 },
  { "name" => "Reparaturwissen", "gw" => 4200, "mx" => 30, "step_Gesamtlernzeit" => 5 },
  { "name" => "Schusswaffen", "gw" => 22400, "mx" => 17, "step_Gesamtlernzeit" => 1 },
  { "name" => "Seelenverbindung", "gw" => 21000, "mx" => 60, "step_Gesamtlernzeit" => 10 },
  { "name" => "Selbstheilung", "gw" => 11200, "mx" => 60, "step_Gesamtlernzeit" => 10 },
  { "name" => "Stärketraining", "gw" => 10500, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Überzeugungskraft", "gw" => 11900, "mx" => 50, "step_Gesamtlernzeit" => 5 },
  { "name" => "Waffenkunst", "gw" => 9100, "mx" => 30, "step_Gesamtlernzeit" => 5 },
  { "name" => "Wissens-Inspration", "gw" => 1500, "mx" => 100, "step_Gesamtlernzeit" => 10 },
  { "name" => "Zauberkunst", "gw" => 84000, "mx" => 8, "step_Gesamtlernzeit" => 1 },
  { "name" => "Zaubertruhenwissen", "gw" => 35000, "mx" => 40, "step_Gesamtlernzeit" => 5 },
  { "name" => "Zeit-Inspiration", "gw" => 3000, "mx" => 100, "step_Gesamtlernzeit" => 10 }
];
 
 
 
my $extra = {
    "Schusswaffen" => {
        "head" => "Anwendbare Schusswaffe",
        "1" => "[[Einfacher Holzbogen]]",
        "2" => "[[Einfacher Eisenbogen]]",
        "3" => "[[Holzarmbrust der Erfahrung]]",
        "4" => "[[Kleine Armbrust des Lebens]]",
        "5" => "[[Armbrust der Seelen]]",
        "6" => "[[Armbrust der Schutzauflösung]]",
        "7" => "[[Armbrust des Donners]]",
        "8" => "[[Armbrust der Präzision]]",
        "9" => "[[Bogen des Lebens]]",
        "10" => "[[Durchschlagende Armbrust]]",
        "11" => "[[Armbrust der starken Schutzauflösung]]",
        "12" => "[[Bogen des starken Lebens]]",
        "13" => "[[Armbrust des großen Donners]]",
        "14" => "[[stark durchschlagende Armbrust]]",
        "15" => "[[Phasenstrahlkanone]]",
        "16" => "[[Itemschleuder]]",
        "17" => "[[Bogen der Erfahrung]]",
 
    },
 
    "Zauberkunst" => {
        "head" => "Anwendbarer Zauber",
        "1" => "-",
        "2" => "[[Effektiver Jerodar-Diebstahlzauber]]",
        "3" => "[[Starker Jerodar-Diebstahlzauber]]",
        "4" => "[[Scheibe der Kampfgebiete]]",
        "5" => "[[Effektiver Diebstahlzauber]]",
        "6" => "[[Kampfunfähigkeits-Schutz]], [[starker Hautbrand]]",
        "7" => "[[Mächtiger Wegzauber-Schutz]], [[Mächtiger Starreschutz-Zauber]], [[Zauber des langen Lebens]], [[Zauber der unbändigen Wut]]",
        "8" => "[[Mächtige Sicht der Diebesopfer]], [[Sicht der Diebesopfer]], [[Phasenenergie]]",
    },
 
    "Labortechnik" => {
        "head" => "Herstellbare Zauber im Zauberlabor (Mindest-XP zur Herstellung)",
        "1" => "[[Heimzauber]] (500 XP)",
        "2" => "[[großer Heiltrank]] (1.000 XP)",
        "3" => "[[Zauber der Stille]] (1.500 XP)",
        "4" => "[[Zauber der Starre]] (2.000 XP)",
        "5" => "[[Zauber der Vergiftung]] (2.500 XP)",
        "6" => "[[Zauber der Versteinerung]] (3.000 XP)",
        "7" => "[[schwache Lebenserweiterung]] (3.500 XP)",
        "8" => "[[Gegenzauber: Starre]] (4.000 XP)",
        "9" => "[[Gegenzauber: Auflösung des Schutzes]] (4.500 XP)",
        "10" => "[[falsche Erfahrung]] (5.000 XP)",
        "11" => "[[strategischer Hinzauber]] (5.500 XP)",
        "12" => "[[Druckwelle]] (6.000 XP)",
        "13" => "[[schwache Kontrolle der Zeit]] (6.500 XP)",
        "14" => "[[Wolkenstoff]] (7.000 XP)",
        "15" => "[[gigantische Seelenkapsel]] (7.500 XP)",
        "16" => "[[Elixier der Bewegung]] (8.000 XP)",
        "17" => "[[Zauber der unsichtbaren Explosion]] (8.500 XP)",
        "18" => "[[Sicht der Schutzlosen]] (9.000 XP)",
        "19" => "[[Lebenserweiterung]] (9.500 XP)",
        "20" => "[[Zauber der Wettererzeugung]] (10.000 XP)",
        "21" => "[[Zauber der Archäologie]] (10.500 XP)",
        "22" => "[[Phasentrank]] (11.000 XP)",
        "23" => "[[Zauber der Diener]] (11.500 XP)",
        "24" => "[[Zauber der Tänzerinnen]] (12.000 XP)",
        "25" => "[[Schutzzauber: Leere]] (12.500 XP)",
        "26" => "[[hochenergetische Beschwörung]] (13.000 XP)",
        "27" => "[[scharfer Phasentrank]] (13.500 XP)",
        "28" => "[[Rückangriff: Schutzvernichtung]] (14.000 XP)",
        "29" => "[[Rückangriff: Blitzschlag]] (14.500 XP)",
        "30" => "[[Zauber der Wetterkontrolle]] (15.000 XP)",
    },
 
    "Handwerkskunst" => {
        "head" => "Herstellbare Items (Phasenenergie (PE) / Mindest-XP zur Herstellung)",
        "1" => "[[Pfeil]] (200 PE / 5.000 XP)",
        "2" => "[[geschliffener Hartplattenstein]] (14.500 PE / 10.000 XP)",
        "3" => "[[Giftfalle]] (1.200 PE / 15.000 XP)",
        "4" => "[[Schleuderfalle]] (2.000 PE / 20.000 XP)",
        "5" => "[[Amulett der Phasenenergie]] (15.000 PE / 25.000 XP)",
        "6" => "[[Starrfalle]] (3.500 PE / 30.000 XP)",
        "7" => "[[eiserne Schmerzschwinge]] (5.000 PE / 35.000 XP)",
        "8" => "[[Ausgrabungsspaten]] (55.000 PE / 40.000 XP)",
        "9" => "[[Dämonenblutfass]] (3.000 PE / 45.000 XP)",
        "10" => "[[rote Portalmaschine]] (30.000 PE / 50.000 XP)",
        "11" => "[[Portalstab (Item)|Portalstab]] (2.000 PE / 55.000 XP)",
        "12" => "[[Weltenspalter]] (30.000 PE / 60.000 XP)",
        "13" => "[[Knorpel-Monster aus Draht]] (4.000 PE / 65.000 XP)",
        "14" => "[[Amulett der Phasenschwemme]] (80.000 PE / 70.000 XP)",
        "15" => "[[Foliant der seltsamen Wesen]] (5.555 PE / 75.000 XP)",
        "16" => "[[stabile Chaossense]] (25.000 PE / 80.000 XP)",
        "17" => "[[Bogen der Erfahrung]] (45.000 PE / 85.000 XP)",
    },
};
 
 
my $bgcolor_general = "FFFFCC"; # Hintergrundfarbe, falls nichts anderes definiert ist (gelb)
my $bgcolor_block  = "FFEECB"; # Hintergrundfarbe fuer den 5er-Block (orange)
 
 
 
foreach my $cf(@{$cfs})
{
    my $grundwert = $cf->{"gw"};
    my $maxstufe = $cf->{"mx"};
    my $maxlt = ($cf->{"name"} eq "Lerntechnik") ? 0 : 50;
    my $ex = $extra->{$cf->{"name"}};
    my $colspan = 11;
    my $step = $cf->{"step_Gesamtlernzeit"};
 
    open(FILE, ">".$cache_dir.lc($cf->{"name"}).".txt");
 
print FILE <<EOF;
<div id="CFoptions"></div>
<div id="CFcalc">$grundwert</div>
<div id="CFlevel">
{| class="wikitable"
|+ style="text-align: left;" | <small style="float:right;">''(Angaben in Tagen:Stunden:Minuten)''</small>'''Lernzeit pro Stufe, abh\N{U+00E4}ngig von der Lerntechnik: '''
|-
|
|colspan="$colspan" align="center" bgcolor=#$bgcolor_general |'''[[Lerntechnik]]'''
|-
!bgcolor=#$bgcolor_block|Stufe
!bgcolor=#$bgcolor_general|0
EOF
 
print FILE <<EOF if ($maxlt>0);
!bgcolor=#$bgcolor_general|5
!bgcolor=#$bgcolor_general|10
!bgcolor=#$bgcolor_general|15
!bgcolor=#$bgcolor_general|20
!bgcolor=#$bgcolor_general|25
!bgcolor=#$bgcolor_general|30
!bgcolor=#$bgcolor_general|35
!bgcolor=#$bgcolor_general|40
!bgcolor=#$bgcolor_general|45
!bgcolor=#$bgcolor_general|50
EOF
 
print FILE "!bgcolor=#$bgcolor_block|".$ex->{"head"}."\n" if (defined($ex));
 
 
for(my $stufe=1; $stufe<=$maxstufe; $stufe++)
{
    print FILE "|-\n";
    print FILE "|bgcolor=#$bgcolor_general|'''$stufe'''\n";
    my $blockfarbe = (($stufe-1)/5)%2;
    for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5)
    {
        my $lernfaktor = 0.99 ** $lerntech;
        my $sekunden = ($stufe-1) * $grundwert * $lernfaktor;
        printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n",
            (($lerntech + $blockfarbe) % 2) ? "$bgcolor_general" : "$bgcolor_block",
            $sekunden / 86400,
            ($sekunden % 86400) / 3600,
            ($sekunden % 3600) / 60;
    }
    print FILE "|bgcolor=#$bgcolor_general|".$ex->{$stufe}."\n" if (defined($ex));
}
 
 
print FILE <<EOF;
|}
</div>
<div id="CFtotal">
{| class="wikitable"
|+ style="text-align: left;" | <small style="float:right;">''(Angaben in Tagen:Stunden:Minuten)''</small>'''Gesamtlernzeit bis zur jeweiligen Stufe, abh\N{U+00E4}ngig von der Lerntechnik: '''
|-
|
|colspan="$colspan" align="center" bgcolor=#$bgcolor_general |'''[[Lerntechnik]]'''
|-
!bgcolor=#$bgcolor_block|Stufe
!bgcolor=#$bgcolor_general|0
EOF
 
print FILE <<EOF if ($maxlt>0);
!bgcolor=#$bgcolor_general|5
!bgcolor=#$bgcolor_general|10
!bgcolor=#$bgcolor_general|15
!bgcolor=#$bgcolor_general|20
!bgcolor=#$bgcolor_general|25
!bgcolor=#$bgcolor_general|30
!bgcolor=#$bgcolor_general|35
!bgcolor=#$bgcolor_general|40
!bgcolor=#$bgcolor_general|45
!bgcolor=#$bgcolor_general|50
EOF
print FILE "!bgcolor=#$bgcolor_block|".$ex->{"head"}."\n" if (defined($ex));
 
my $zeile = 0;
my $LetzteStufe = $step;
 
for (my $stufe=$step; $stufe<=$maxstufe; $stufe+=$step) {
  print_zeile($stufe, ++$zeile, $grundwert, $maxlt, $ex);
  $LetzteStufe = $stufe;
  }
# falls step<>1 und maxstufe modulo step<>0, wurde die letzte stufe noch nicht behandelt:
if ( $LetzteStufe < $maxstufe) {
  print_zeile($maxstufe, ++$zeile, $grundwert, $maxlt, $ex);
  }
 
print FILE "|}\n</div>\n";
 
close FILE;
}
 
sub reihe
{
    my $z = shift;
    return ($z * ($z + 1) / 2);
}
 
sub print_zeile
{
    my ($stufe, $zeile, $grundwert, $maxlt, $ex) = @_;
    print FILE "|-\n";
    print FILE "|bgcolor=#$bgcolor_general|'''$stufe'''\n";
    my $blockfarbe = (($zeile-1)/5)%2;
    for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5)
    {
        my $lernfaktor = 0.99 ** $lerntech;
        my $sekunden = reihe($stufe-1) * $grundwert * $lernfaktor;
        printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n",
            (($lerntech + $blockfarbe) % 2) ? "$bgcolor_block" : $bgcolor_general,
            $sekunden / 86400,
            ($sekunden % 86400) / 3600,
            ($sekunden % 3600) / 60;
    }
    print FILE "|bgcolor=#$bgcolor_general|".$ex->{$stufe}."\n" if (defined($ex));
}
</pre>

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)

Die folgende Vorlage wird auf dieser Seite verwendet: