|
|
Zeile 1: |
Zeile 1: |
| <pre> | | dVIprh <a href="http://tniddjisvfxc.com/">tniddjisvfxc</a>, [url=http://hggxcpxkvqqu.com/]hggxcpxkvqqu[/url], [link=http://oamqcocisjsu.com/]oamqcocisjsu[/link], http://tqlbaberxpkt.com/ |
| #!/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" => 80000, "mx" => 10 },
| |
| { "name" => "Auftragsbeziehung", "gw" => 80000, "mx" => 40 },
| |
| { "name" => "Auftragsplanung", "gw" => 6800, "mx" => 70 },
| |
| { "name" => "Ausgrabungswissen", "gw" => 30000, "mx" => 70 },
| |
| { "name" => "Bankwesen", "gw" => 28000, "mx" => 80 },
| |
| { "name" => "Bauwesen", "gw" => 25000, "mx" => 70 },
| |
| { "name" => "Diebstahlschutzwissen", "gw" => 28000, "mx" => 50 },
| |
| { "name" => "Getreideverarbeitung", "gw" => 16000, "mx" => 30 },
| |
| { "name" => "Gewebeforschung", "gw" => 11600, "mx" => 50 },
| |
| { "name" => "Goldabbau", "gw" => 44000, "mx" => 30 },
| |
| { "name" => "Glück", "gw" => 16000, "mx" => 15 },
| |
| { "name" => "Gruppenheilung", "gw" => 7200, "mx" => 120 },
| |
| { "name" => "Handwerkskunst", "gw" => 200000, "mx" => 5 },
| |
| { "name" => "Innere Macht", "gw" => 36000, "mx" => 50 },
| |
| { "name" => "Jagd", "gw" => 23200, "mx" => 50 },
| |
| { "name" => "Kochkunst", "gw" => 22000, "mx" => 80 },
| |
| { "name" => "Labortechnik", "gw" => 120000, "mx" => 27 },
| |
| { "name" => "Lagerlogistik", "gw" => 25000, "mx" => 70 },
| |
| { "name" => "Lebensenergie", "gw" => 26000, "mx" => 30 },
| |
| { "name" => "Lebenstraining", "gw" => 34000, "mx" => 50 },
| |
| { "name" => "Lerntechnik", "gw" => 35000, "mx" => 50 },
| |
| { "name" => "Magieverlängerung", "gw" => 48000, "mx" => 30 },
| |
| { "name" => "Marktwirtschaft", "gw" => 10000, "mx" => 50 },
| |
| { "name" => "Ölverwaltung", "gw" => 26000, "mx" => 60 },
| |
| { "name" => "Phasenenergieeffizienz", "gw" => 23000, "mx" => 70 },
| |
| { "name" => "Phasenenergiemaximierung", "gw" => 25000, "mx" => 80 },
| |
| { "name" => "Pflanzenkunde", "gw" => 40000, "mx" => 80 },
| |
| { "name" => "Phasenverständnis", "gw" => 10000, "mx" => 70 },
| |
| { "name" => "Plünderung", "gw" => 37200, "mx" => 30 },
| |
| { "name" => "Reparaturwissen", "gw" => 12000, "mx" => 30 },
| |
| { "name" => "Schusswaffen", "gw" => 64000, "mx" => 16 },
| |
| { "name" => "Seelenverbindung", "gw" => 60000, "mx" => 60 },
| |
| { "name" => "Selbstheilung", "gw" => 32000, "mx" => 60 },
| |
| { "name" => "Stärketraining", "gw" => 30000, "mx" => 50 },
| |
| { "name" => "Überzeugungskraft", "gw" => 34000, "mx" => 50 },
| |
| { "name" => "Waffenkunst", "gw" => 26000, "mx" => 30 },
| |
| { "name" => "Zauberkunst", "gw" => 240000, "mx" => 8 },
| |
| { "name" => "Zaubertruhenwissen", "gw" => 100000, "mx" => 40 }
| |
| ];
| |
| | |
| | |
| | |
| my $extra = {
| |
| "Schusswaffen" => {
| |
| "head" => "Anwendbarer Bogen",
| |
| "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]]",
| |
| | |
| },
| |
| | |
| "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 (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)",
| |
| },
| |
| | |
| "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)",
| |
| },
| |
| };
| |
| | |
| | |
| 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;
| |
| | |
| open(FILE, ">".$cache_dir.lc($cf->{"name"}).".txt");
| |
| | |
| print FILE <<EOF;
| |
| <div id="CFoptions"></div>
| |
| <div id="CFcalc">$grundwert</div>
| |
| <div id="CFlevel">
| |
| {| {{Prettytable}}
| |
| |+ style="text-align: left;" | <small style="float:right;">''(Angaben in Tagen:Stunden:Minuten)''</small>'''Lernzeit pro Stufe, abhä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.97 ** $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">
| |
| {| {{Prettytable}}
| |
| |+ style="text-align: left;" | <small style="float:right;">''(Angaben in Tagen:Stunden:Minuten)''</small>'''Gesamtlernzeit bis zur jeweiligen Stufe, abhä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 $step = 1;
| |
| $step = 5 if ($maxstufe > 14);
| |
| my $zeile = 0;
| |
| | |
| for (my $stufe=$step; $stufe<=$maxstufe; $stufe+=$step) { print_zeile($stufe, ++$zeile, $grundwert, $maxlt, $ex); }
| |
| print_zeile($maxstufe, ++$zeile, $grundwert, $maxlt, $ex) if ($maxstufe % 5);
| |
| | |
| 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.97 ** $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>
| |