Kategorien
Bearbeiten von „Benutzer:Count Ypsilon/Skript:cf.pl“
Zur Navigation springen
Zur Suche springen
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: | ||
Dieses Skript erzeugt für jede im anfangs definierten Array erwähnte Charakterfähigkeit eine Datei, in der sich die Lernzeit- und die Gesamtlernzeit-Tabellen befinden. Grundwert ("gw") und maximale Ausbaustufe ("mx") sind geeignet zu wählen. | Dieses Skript erzeugt für jede im anfangs definierten Array erwähnte Charakterfähigkeit eine Datei, in der sich die Lernzeit- und die Gesamtlernzeit-Tabellen befinden. Grundwert ("gw") und maximale Ausbaustufe ("mx") sind geeignet zu wählen. | ||
Über das Array "extra" kann bei bestimmten Charakterfähigkeiten eine zusätzliche Spalte an die Tabelle angehängt werden. | Über das Array "extra" kann bei bestimmten Charakterfähigkeiten eine zusätzliche Spalte an die Tabelle angehängt werden. | ||
< | <nowiki>#!/usr/bin/perl</nowiki> | ||
#!/usr/bin/perl | <nowiki></nowiki> | ||
<nowiki>use strict;</nowiki> | |||
use strict; | <nowiki></nowiki> | ||
<nowiki>my $cfs = [</nowiki> | |||
my $cfs = [ | <nowiki> { "name" => "Schusswaffen", "gw" => 160000, "mx" => 12 },</nowiki> | ||
<nowiki> { "name" => "Gruppenheilung", "gw" => 18000, "mx" => 150 },</nowiki> | |||
<nowiki> { "name" => "Angriffsenergie", "gw" => 200000, "mx" => 10 },</nowiki> | |||
<nowiki> { "name" => "Auftragsplanung", "gw" => 17200, "mx" => 70 },</nowiki> | |||
<nowiki> { "name" => "Diebstahlschutzwissen", "gw" => 70000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Getreideverarbeitung", "gw" => 40000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Gewebeforschung", "gw" => 29000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Goldabbau", "gw" => 110000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Glück", "gw" => 40000, "mx" => 15 },</nowiki> | |||
<nowiki> { "name" => "Innere Macht", "gw" => 90000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Jagd", "gw" => 58000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Kochkunst", "gw" => 55000, "mx" => 80 },</nowiki> | |||
<nowiki> { "name" => "Lebensenergie", "gw" => 65000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Lebenstraining", "gw" => 85000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Lerntechnik", "gw" => 35000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Magieverlängerung", "gw" => 120000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Marktwirtschaft", "gw" => 25000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Ölverwaltung", "gw" => 65000, "mx" => 60 },</nowiki> | |||
<nowiki> { "name" => "Plünderung", "gw" => 93000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Reparaturwissen", "gw" => 30000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Selbstheilung", "gw" => 80000, "mx" => 80 },</nowiki> | |||
<nowiki> { "name" => "Stärketraining", "gw" => 75000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Überzeugungskraft", "gw" => 85000, "mx" => 50 },</nowiki> | |||
<nowiki> { "name" => "Waffenkunst", "gw" => 65000, "mx" => 30 },</nowiki> | |||
<nowiki> { "name" => "Zauberkunst", "gw" => 600000, "mx" => 3 }</nowiki> | |||
<nowiki>];</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>my $extra = {</nowiki> | |||
<nowiki> "Schusswaffen" => {</nowiki> | |||
<nowiki> "head" => "Anwendbarer Bogen",</nowiki> | |||
<nowiki> "1" => "[[Einfacher Holzbogen]]",</nowiki> | |||
<nowiki> "2" => "[[Einfacher Eisenbogen]]",</nowiki> | |||
<nowiki> "3" => "[[Holzarmbrust der Erfahrung]]",</nowiki> | |||
] | <nowiki> "4" => "[[Kleine Armbrust des Lebens]]",</nowiki> | ||
<nowiki> "5" => "[[Armbrust der Seelen]]",</nowiki> | |||
<nowiki> "6" => "[[Armbrust der Schutzauflösung]]",</nowiki> | |||
<nowiki> "7" => "[[Armbrust des Donners]]",</nowiki> | |||
<nowiki> "8" => "[[Armbrust der Präzision]]",</nowiki> | |||
<nowiki> "9" => "[[Bogen des Lebens]]",</nowiki> | |||
<nowiki> "10" => "[[Durchschlagende Armbrust]]",</nowiki> | |||
<nowiki> "11" => "[[Armbrust der starken Schutzauflösung]]",</nowiki> | |||
<nowiki> "12" => "[[Bogen des starken Lebens]]"</nowiki> | |||
<nowiki> },</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki> "Zauberkunst" => {</nowiki> | |||
<nowiki> "head" => "Anwendbarer Zauber",</nowiki> | |||
<nowiki> "1" => "-",</nowiki> | |||
<nowiki> "2" => "[[Effektiver Jerodar-Diebstahlzauber]]",</nowiki> | |||
<nowiki> "3" => "[[Starker Jerodar-Diebstahlzauber]]"</nowiki> | |||
<nowiki> },</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>};</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>foreach my $cf(@{$cfs})</nowiki> | |||
<nowiki>{</nowiki> | |||
<nowiki> my $grundwert = $cf->{"gw"};</nowiki> | |||
<nowiki> my $maxstufe = $cf->{"mx"};</nowiki> | |||
<nowiki> my $maxlt = ($cf->{"name"} eq "Lerntechnik") ? 0 : 50;</nowiki> | |||
<nowiki> my $ex = $extra->{$cf->{"name"}};</nowiki> | |||
<nowiki> my $colspan = (defined($ex) ? 12 : 11);</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki> open(FILE, ">".lc($cf->{"name"}).".txt");</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>print FILE <<EOF;</nowiki> | |||
<nowiki><!-- gw=$grundwert mx=$maxstufe --></nowiki> | |||
<nowiki>'''Lernzeit pro Stufe, abhängig von der Lerntechnik: ''' ''(Angaben in Tagen:Stunden:Minuten)''</nowiki> | |||
<nowiki>{| {{Prettytable}}</nowiki> | |||
<nowiki>|</nowiki> | |||
<nowiki>|colspan="$colspan" align="center" bgcolor=#FFFFCC |'''[[Lerntechnik]]'''</nowiki> | |||
<nowiki>|-</nowiki> | |||
<nowiki>!bgcolor=#FFEECB|Stufe</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|0</nowiki> | |||
<nowiki>EOF</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>print FILE <<EOF if ($maxlt>0);</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|5</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|10</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|15</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|20</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|25</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|30</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|35</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|40</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|45</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|50</nowiki> | |||
<nowiki>EOF</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>print FILE "!bgcolor=#FFEECB|".$ex->{"head"}."\n" if (defined($ex));</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>for(my $stufe=1; $stufe<=$maxstufe; $stufe++)</nowiki> | |||
<nowiki>{</nowiki> | |||
<nowiki> print FILE "|-\n";</nowiki> | |||
<nowiki> print FILE "|bgcolor=#FFFFCC|'''$stufe'''\n";</nowiki> | |||
<nowiki> my $blockfarbe = (($stufe-1)/5)%2;</nowiki> | |||
<nowiki> for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5)</nowiki> | |||
<nowiki> {</nowiki> | |||
<nowiki> my $lernfaktor = 0.95 ** $lerntech;</nowiki> | |||
<nowiki> my $sekunden = ($stufe-1) * $grundwert * $lernfaktor;</nowiki> | |||
<nowiki> printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n", </nowiki> | |||
<nowiki> (($lerntech + $blockfarbe) % 2) ? "" : "FFEECB",</nowiki> | |||
<nowiki> $sekunden / 86400,</nowiki> | |||
<nowiki> ($sekunden % 86400) / 3600, </nowiki> | |||
<nowiki> ($sekunden % 3600) / 60;</nowiki> | |||
<nowiki> }</nowiki> | |||
<nowiki> print FILE "|bgcolor=#FFFFCC|".$ex->{$stufe}."\n" if (defined($ex));</nowiki> | |||
<nowiki>}</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>print FILE <<EOF;</nowiki> | |||
< | <nowiki>|}</nowiki> | ||
< | <nowiki></nowiki> | ||
< | <nowiki></nowiki> | ||
<nowiki>'''Gesamtlernzeit bis zur jeweiligen Stufe, abhängig von der Lerntechnik: ''' ''(Angaben in Tagen:Stunden:Minuten)''</nowiki> | |||
<nowiki>{| {{Prettytable}}</nowiki> | |||
| | <nowiki>|</nowiki> | ||
<nowiki>|colspan="$colspan" align="center" bgcolor=#FFFFCC |'''[[Lerntechnik]]'''</nowiki> | |||
<nowiki>|-</nowiki> | |||
<nowiki>!bgcolor=#FFEECB|Stufe</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|0</nowiki> | |||
<nowiki>EOF</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>print FILE <<EOF if ($maxlt>0);</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|5</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|10</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|15</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|20</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|25</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|30</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|35</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|40</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|45</nowiki> | |||
<nowiki>!bgcolor=#FFFFCC|50</nowiki> | |||
<nowiki>EOF</nowiki> | |||
<nowiki>print FILE "!bgcolor=#FFEECB|".$ex->{"head"}."\n" if (defined($ex));</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>my $step = 1;</nowiki> | |||
<nowiki>$step = 5 if ($maxstufe > 14);</nowiki> | |||
<nowiki>my $zeile = 1;</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>for(my $stufe=$step; $stufe<=$maxstufe; $stufe+=$step)</nowiki> | |||
<nowiki>{</nowiki> | |||
<nowiki> print FILE "|-\n";</nowiki> | |||
<nowiki> print FILE "|bgcolor=#FFFFCC|'''$stufe'''\n";</nowiki> | |||
<nowiki> my $blockfarbe = (($zeile-1)/5)%2;</nowiki> | |||
<nowiki> for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5)</nowiki> | |||
<nowiki> {</nowiki> | |||
<nowiki> my $lernfaktor = 0.95 ** $lerntech;</nowiki> | |||
<nowiki> my $sekunden = reihe($stufe-1) * $grundwert * $lernfaktor;</nowiki> | |||
<nowiki> printf FILE "|bgcolor=#%s|%02d:%02d:%02d\n", </nowiki> | |||
<nowiki> (($lerntech + $blockfarbe) % 2) ? "FFEECB" : $blockfarbe,</nowiki> | |||
<nowiki> $sekunden / 86400,</nowiki> | |||
<nowiki> ($sekunden % 86400) / 3600, </nowiki> | |||
<nowiki> ($sekunden % 3600) / 60;</nowiki> | |||
<nowiki> }</nowiki> | |||
<nowiki> print FILE "|bgcolor=#FFFFCC|".$ex->{$stufe}."\n" if (defined($ex));</nowiki> | |||
<nowiki> $zeile++;</nowiki> | |||
<nowiki>}</nowiki> | |||
<nowiki></nowiki> | |||
| | <nowiki>print FILE "|}\n";</nowiki> | ||
</ | <nowiki></nowiki> | ||
< | <nowiki>close FILE;</nowiki> | ||
<nowiki>}</nowiki> | |||
<nowiki></nowiki> | |||
<nowiki>sub reihe</nowiki> | |||
| | <nowiki>{</nowiki> | ||
<nowiki> my $z = shift;</nowiki> | |||
<nowiki> return ($z * ($z + 1) / 2);</nowiki> | |||
<nowiki>}</nowiki> | |||
<nowiki></nowiki> | |||
my $ | |||
$ | |||
close FILE; | |||
} | |||
sub reihe | |||
{ | |||
} | |||
</ |