Kategorien
FreewarWiki:Bot/Skripts/cf.pl: Unterschied zwischen den Versionen
< FreewarWiki:Bot | Skripts
K (handwerkskunst aktualisiert) |
K (Bot: Automatisierte Textersetzung (-prettytable +wikitable)) |
||
(18 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 14: | Zeile 14: | ||
my $cfs = [ | my $cfs = [ | ||
{ "name" => "Angriffsenergie", "gw" => | { "name" => "Angriffsenergie", "gw" => 28000, "mx" => 10, "step_Gesamtlernzeit" => 1 }, | ||
{ "name" => "Auftragsbeziehung", "gw" => | { "name" => "Auftragsbeziehung", "gw" => 28000, "mx" => 40, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Auftragsplanung", "gw" => | { "name" => "Auftragsplanung", "gw" => 2380, "mx" => 70, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Ausgrabungswissen", "gw" => | { "name" => "Ausgrabungswissen", "gw" => 10500, "mx" => 70, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Bankwesen", "gw" => | { "name" => "Bankwesen", "gw" => 9800, "mx" => 80, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Bauwesen", "gw" => | { "name" => "Bauwesen", "gw" => 8750, "mx" => 90, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Blutwissen", "gw" => | { "name" => "Blutwissen", "gw" => 9100, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Chaosmagie", "gw" => | { "name" => "Chaosmagie", "gw" => 8750, "mx" => 90, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Diebstahlschutzwissen", "gw" => | { "name" => "Diebstahlschutzwissen", "gw" => 9800, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Getreideverarbeitung", "gw" => | { "name" => "Getreideverarbeitung", "gw" => 5600, "mx" => 30, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Gewebeforschung", "gw" => | { "name" => "Gewebeforschung", "gw" => 4060, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Goldabbau", "gw" => | { "name" => "Goldabbau", "gw" => 15400, "mx" => 30, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Glück", "gw" => | { "name" => "Goldraub", "gw" => 6000, "mx" => 100, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Gruppenheilung", "gw" => | { "name" => "Gold-Inspiration", "gw" => 9000, "mx" => 100, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Handwerkskunst", "gw" => | { "name" => "Glück", "gw" => 5600, "mx" => 15, "step_Gesamtlernzeit" => 1 }, | ||
{ "name" => "Innere Macht", "gw" => | { "name" => "Gruppenheilung", "gw" => 2520, "mx" => 120, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Inspiration", "gw" => | { "name" => "Handwerkskunst", "gw" => 70000, "mx" => 17, "step_Gesamtlernzeit" => 1 }, | ||
{ "name" => "Jagd", "gw" => | { "name" => "Innere Macht", "gw" => 12600, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Kochkunst", "gw" => | { "name" => "Inspiration", "gw" => 9450, "mx" => 90, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Labortechnik", "gw" => | { "name" => "Jagd", "gw" => 8120, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Lagerlogistik", "gw" => | { "name" => "Kochkunst", "gw" => 7700, "mx" => 80, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Lebensenergie", "gw" => | { "name" => "Labortechnik", "gw" => 42000, "mx" => 30, "step_Gesamtlernzeit" => 1 }, | ||
{ "name" => "Lebenstraining", "gw" => | { "name" => "Lagerlogistik", "gw" => 8750, "mx" => 90, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Lerntechnik", "gw" => | { "name" => "Lebensenergie", "gw" => 9100, "mx" => 30, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Magieverlängerung", "gw" => | { "name" => "Lebenstraining", "gw" => 11900, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Marktwirtschaft", "gw" => | { "name" => "Lerntechnik", "gw" => 12250, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Ölverwaltung", "gw" => | { "name" => "Magieverlängerung", "gw" => 16800, "mx" => 30, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Phasenenergieeffizienz", "gw" => | { "name" => "Marktwirtschaft", "gw" => 3500, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Phasenenergiemaximierung", "gw" => | { "name" => "Ölverwaltung", "gw" => 9100, "mx" => 60, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Pflanzenkunde", "gw" => | { "name" => "Phasenenergieeffizienz", "gw" => 8050, "mx" => 70, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Phasenverständnis", "gw" => | { "name" => "Phasenenergiemaximierung", "gw" => 8750, "mx" => 80, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Plünderung", "gw" => | { "name" => "Pflanzenkunde", "gw" => 14000, "mx" => 80, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Rache", "gw" => | { "name" => "Phasenverständnis", "gw" => 3500, "mx" => 70, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Reparaturwissen", "gw" => | { "name" => "Plünderung", "gw" => 13020, "mx" => 30, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Schusswaffen", "gw" => | { "name" => "Rache", "gw" => 3500, "mx" => 80, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Seelenverbindung", "gw" => | { "name" => "Reparaturwissen", "gw" => 4200, "mx" => 30, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Selbstheilung", "gw" => | { "name" => "Schusswaffen", "gw" => 22400, "mx" => 17, "step_Gesamtlernzeit" => 1 }, | ||
{ "name" => "Stärketraining", "gw" => | { "name" => "Seelenverbindung", "gw" => 21000, "mx" => 60, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Überzeugungskraft", "gw" => | { "name" => "Selbstheilung", "gw" => 11200, "mx" => 60, "step_Gesamtlernzeit" => 10 }, | ||
{ "name" => "Waffenkunst", "gw" => | { "name" => "Stärketraining", "gw" => 10500, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Zauberkunst", "gw" => | { "name" => "Überzeugungskraft", "gw" => 11900, "mx" => 50, "step_Gesamtlernzeit" => 5 }, | ||
{ "name" => "Zaubertruhenwissen", "gw" => | { "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 } | |||
]; | ]; | ||
Zeile 79: | Zeile 83: | ||
"15" => "[[Phasenstrahlkanone]]", | "15" => "[[Phasenstrahlkanone]]", | ||
"16" => "[[Itemschleuder]]", | "16" => "[[Itemschleuder]]", | ||
"17" => "[[Bogen der Erfahrung]]", | |||
}, | }, | ||
Zeile 140: | Zeile 145: | ||
"9" => "[[Dämonenblutfass]] (3.000 PE / 45.000 XP)", | "9" => "[[Dämonenblutfass]] (3.000 PE / 45.000 XP)", | ||
"10" => "[[rote Portalmaschine]] (30.000 PE / 50.000 XP)", | "10" => "[[rote Portalmaschine]] (30.000 PE / 50.000 XP)", | ||
"11" => "[[Portalstab]] (2.000 PE / 55.000 XP)", | "11" => "[[Portalstab (Item)|Portalstab]] (2.000 PE / 55.000 XP)", | ||
"12" => "[[Weltenspalter]] (30.000 PE / 60.000 XP)", | "12" => "[[Weltenspalter]] (30.000 PE / 60.000 XP)", | ||
"13" => "[[Knorpel-Monster aus Draht]] (4.000 PE / 65.000 XP)", | "13" => "[[Knorpel-Monster aus Draht]] (4.000 PE / 65.000 XP)", | ||
"14" => "[[Amulett der Phasenschwemme]] (80.000 PE / 70.000 XP)", | "14" => "[[Amulett der Phasenschwemme]] (80.000 PE / 70.000 XP)", | ||
"15" => "[[Foliant der seltsamen Wesen]] (5.555 PE / 75.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)", | |||
}, | }, | ||
}; | }; | ||
Zeile 161: | Zeile 168: | ||
my $ex = $extra->{$cf->{"name"}}; | my $ex = $extra->{$cf->{"name"}}; | ||
my $colspan = 11; | my $colspan = 11; | ||
my $step = $cf->{"step_Gesamtlernzeit"}; | |||
open(FILE, ">".$cache_dir.lc($cf->{"name"}).".txt"); | open(FILE, ">".$cache_dir.lc($cf->{"name"}).".txt"); | ||
Zeile 168: | Zeile 176: | ||
<div id="CFcalc">$grundwert</div> | <div id="CFcalc">$grundwert</div> | ||
<div id="CFlevel"> | <div id="CFlevel"> | ||
{| | {| class="wikitable" | ||
|+ style="text-align: left;" | <small style="float:right;">''(Angaben in Tagen:Stunden:Minuten)''</small>'''Lernzeit pro Stufe, | |+ 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: ''' | ||
|- | |- | ||
| | | | ||
Zeile 201: | Zeile 209: | ||
for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | ||
{ | { | ||
my $lernfaktor = 0. | my $lernfaktor = 0.99 ** $lerntech; | ||
my $sekunden = ($stufe-1) * $grundwert * $lernfaktor; | my $sekunden = ($stufe-1) * $grundwert * $lernfaktor; | ||
printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n", | printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n", | ||
Zeile 217: | Zeile 225: | ||
</div> | </div> | ||
<div id="CFtotal"> | <div id="CFtotal"> | ||
{| | {| class="wikitable" | ||
|+ style="text-align: left;" | <small style="float:right;">''(Angaben in Tagen:Stunden:Minuten)''</small>'''Gesamtlernzeit bis zur jeweiligen Stufe, | |+ 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: ''' | ||
|- | |- | ||
| | | | ||
Zeile 241: | Zeile 249: | ||
print FILE "!bgcolor=#$bgcolor_block|".$ex->{"head"}."\n" if (defined($ex)); | print FILE "!bgcolor=#$bgcolor_block|".$ex->{"head"}."\n" if (defined($ex)); | ||
my $zeile = 0; | my $zeile = 0; | ||
my $LetzteStufe = $step; | my $LetzteStufe = $step; | ||
Zeile 250: | Zeile 256: | ||
$LetzteStufe = $stufe; | $LetzteStufe = $stufe; | ||
} | } | ||
# falls step<>1 und maxstufe modulo step<>0, wurde die letzte stufe noch nicht behandelt: | |||
if ( $LetzteStufe < $maxstufe) { | if ( $LetzteStufe < $maxstufe) { | ||
print_zeile($maxstufe, ++$zeile, $grundwert, $maxlt, $ex); | print_zeile($maxstufe, ++$zeile, $grundwert, $maxlt, $ex); | ||
Zeile 273: | Zeile 280: | ||
for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | ||
{ | { | ||
my $lernfaktor = 0. | my $lernfaktor = 0.99 ** $lerntech; | ||
my $sekunden = reihe($stufe-1) * $grundwert * $lernfaktor; | my $sekunden = reihe($stufe-1) * $grundwert * $lernfaktor; | ||
printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n", | printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n", |
Aktuelle Version vom 26. April 2016, 14:06 Uhr
#!/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)); }