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. | ||
Zeile 10: | Zeile 9: | ||
my $cfs = [ | my $cfs = [ | ||
{ "name" => " | { "name" => "Schusswaffen", "gw" => 160000, "mx" => 14 }, | ||
{ "name" => " | { "name" => "Gruppenheilung", "gw" => 18000, "mx" => 150 }, | ||
{ "name" => " | { "name" => "Angriffsenergie", "gw" => 200000, "mx" => 10 }, | ||
{ "name" => " | { "name" => "Auftragsplanung", "gw" => 17200, "mx" => 70 }, | ||
{ "name" => "Diebstahlschutzwissen", "gw" => | { "name" => "Diebstahlschutzwissen", "gw" => 70000, "mx" => 50 }, | ||
{ "name" => "Getreideverarbeitung", "gw" => | { "name" => "Getreideverarbeitung", "gw" => 40000, "mx" => 30 }, | ||
{ "name" => "Gewebeforschung", "gw" => | { "name" => "Gewebeforschung", "gw" => 29000, "mx" => 50 }, | ||
{ "name" => "Goldabbau", "gw" => | { "name" => "Goldabbau", "gw" => 110000, "mx" => 30 }, | ||
{ "name" => "Glück", "gw" => | { "name" => "Glück", "gw" => 40000, "mx" => 15 }, | ||
{ "name" => "Innere Macht", "gw" => 90000, "mx" => 50 }, | |||
{ "name" => "Innere Macht", "gw" => | { "name" => "Jagd", "gw" => 58000, "mx" => 50 }, | ||
{ "name" => "Jagd", "gw" => | { "name" => "Kochkunst", "gw" => 55000, "mx" => 80 }, | ||
{ "name" => "Kochkunst", "gw" => | { "name" => "Lebensenergie", "gw" => 65000, "mx" => 30 }, | ||
{ "name" => "Lebenstraining", "gw" => 85000, "mx" => 50 }, | |||
{ "name" => "Lebensenergie", "gw" => | |||
{ "name" => "Lebenstraining", "gw" => | |||
{ "name" => "Lerntechnik", "gw" => 35000, "mx" => 50 }, | { "name" => "Lerntechnik", "gw" => 35000, "mx" => 50 }, | ||
{ "name" => "Magieverlängerung", "gw" => | { "name" => "Magieverlängerung", "gw" => 120000, "mx" => 30 }, | ||
{ "name" => "Marktwirtschaft", "gw" => | { "name" => "Marktwirtschaft", "gw" => 25000, "mx" => 50 }, | ||
{ "name" => "Ölverwaltung", "gw" => | { "name" => "Ölverwaltung", "gw" => 65000, "mx" => 60 }, | ||
{ "name" => "Plünderung", "gw" => 93000, "mx" => 30 }, | |||
{ "name" => "Plünderung", "gw" => | { "name" => "Reparaturwissen", "gw" => 30000, "mx" => 30 }, | ||
{ "name" => "Reparaturwissen", "gw" => | { "name" => "Selbstheilung", "gw" => 80000, "mx" => 80 }, | ||
{ "name" => "Stärketraining", "gw" => 75000, "mx" => 50 }, | |||
{ "name" => "Selbstheilung", "gw" => | { "name" => "Überzeugungskraft", "gw" => 85000, "mx" => 50 }, | ||
{ "name" => "Waffenkunst", "gw" => 65000, "mx" => 30 }, | |||
{ "name" => "Stärketraining", "gw" => | { "name" => "Zauberkunst", "gw" => 600000, "mx" => 6 }, | ||
{ "name" => "Überzeugungskraft", "gw" => | { "name" => "Zaubertruhenwissen", "gw" => 250000, "mx" => 70 } | ||
{ "name" => "Waffenkunst", "gw" => | |||
{ "name" => "Zauberkunst", "gw" => | |||
{ "name" => "Zaubertruhenwissen", "gw" => | |||
]; | ]; | ||
my $extra = { | my $extra = { | ||
Zeile 62: | Zeile 54: | ||
"12" => "[[Bogen des starken Lebens]]", | "12" => "[[Bogen des starken Lebens]]", | ||
"13" => "[[Armbrust des großen Donners]]", | "13" => "[[Armbrust des großen Donners]]", | ||
"14" => "[[ | "14" => "[[Stark durchschlagende Armbrust]]" | ||
}, | }, | ||
Zeile 70: | Zeile 62: | ||
"2" => "[[Effektiver Jerodar-Diebstahlzauber]]", | "2" => "[[Effektiver Jerodar-Diebstahlzauber]]", | ||
"3" => "[[Starker Jerodar-Diebstahlzauber]]", | "3" => "[[Starker Jerodar-Diebstahlzauber]]", | ||
"4 | "4" => "[[Effektiver Diebstahlzauber]]", | ||
"5" => "[[Starker Hautbrand]], [[Kampfunfähigkeits-Schutz]]", | |||
" | |||
}, | }, | ||
}; | }; | ||
foreach my $cf(@{$cfs}) | foreach my $cf(@{$cfs}) | ||
Zeile 113: | Zeile 74: | ||
my $maxlt = ($cf->{"name"} eq "Lerntechnik") ? 0 : 50; | my $maxlt = ($cf->{"name"} eq "Lerntechnik") ? 0 : 50; | ||
my $ex = $extra->{$cf->{"name"}}; | my $ex = $extra->{$cf->{"name"}}; | ||
my $colspan = 11; | my $colspan = (defined($ex) ? 12 : 11); | ||
open(FILE, ">".lc($cf->{"name"}).".txt"); | open(FILE, ">".lc($cf->{"name"}).".txt"); | ||
print FILE <<EOF; | print FILE <<EOF; | ||
< | <!-- gw=$grundwert mx=$maxstufe --> | ||
'''Lernzeit pro Stufe, abhängig von der Lerntechnik: ''' ''(Angaben in Tagen:Stunden:Minuten)'' | |||
{| {{Prettytable}} | {| {{Prettytable}} | ||
| | | | ||
|colspan="$colspan" align="center" bgcolor=# | |colspan="$colspan" align="center" bgcolor=#FFFFCC |'''[[Lerntechnik]]''' | ||
|- | |- | ||
!bgcolor=# | !bgcolor=#FFEECB|Stufe | ||
!bgcolor=# | !bgcolor=#FFFFCC|0 | ||
EOF | EOF | ||
print FILE <<EOF if ($maxlt>0); | print FILE <<EOF if ($maxlt>0); | ||
!bgcolor=# | !bgcolor=#FFFFCC|5 | ||
!bgcolor=# | !bgcolor=#FFFFCC|10 | ||
!bgcolor=# | !bgcolor=#FFFFCC|15 | ||
!bgcolor=# | !bgcolor=#FFFFCC|20 | ||
!bgcolor=# | !bgcolor=#FFFFCC|25 | ||
!bgcolor=# | !bgcolor=#FFFFCC|30 | ||
!bgcolor=# | !bgcolor=#FFFFCC|35 | ||
!bgcolor=# | !bgcolor=#FFFFCC|40 | ||
!bgcolor=# | !bgcolor=#FFFFCC|45 | ||
!bgcolor=# | !bgcolor=#FFFFCC|50 | ||
EOF | EOF | ||
print FILE "!bgcolor=# | print FILE "!bgcolor=#FFEECB|".$ex->{"head"}."\n" if (defined($ex)); | ||
for(my $stufe=1; $stufe<=$maxstufe; $stufe++) | for(my $stufe=1; $stufe<=$maxstufe; $stufe++) | ||
{ | { | ||
print FILE "|-\n"; | print FILE "|-\n"; | ||
print FILE "|bgcolor=# | print FILE "|bgcolor=#FFFFCC|'''$stufe'''\n"; | ||
my $blockfarbe = (($stufe-1)/5)%2; | my $blockfarbe = (($stufe-1)/5)%2; | ||
for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | ||
{ | { | ||
my $lernfaktor = 0. | my $lernfaktor = 0.95 ** $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", | ||
(($lerntech + $blockfarbe) % 2) ? " | (($lerntech + $blockfarbe) % 2) ? "" : "FFEECB", | ||
$sekunden / 86400, | $sekunden / 86400, | ||
($sekunden % 86400) / 3600, | ($sekunden % 86400) / 3600, | ||
($sekunden % 3600) / 60; | ($sekunden % 3600) / 60; | ||
} | } | ||
print FILE "|bgcolor=# | print FILE "|bgcolor=#FFFFCC|".$ex->{$stufe}."\n" if (defined($ex)); | ||
} | } | ||
Zeile 168: | Zeile 125: | ||
print FILE <<EOF; | print FILE <<EOF; | ||
|} | |} | ||
'''Gesamtlernzeit bis zur jeweiligen Stufe, abhängig von der Lerntechnik: ''' ''(Angaben in Tagen:Stunden:Minuten)'' | |||
{| {{Prettytable}} | {| {{Prettytable}} | ||
| | | | ||
|colspan="$colspan" align="center" bgcolor=# | |colspan="$colspan" align="center" bgcolor=#FFFFCC |'''[[Lerntechnik]]''' | ||
|- | |- | ||
!bgcolor=# | !bgcolor=#FFEECB|Stufe | ||
!bgcolor=# | !bgcolor=#FFFFCC|0 | ||
EOF | EOF | ||
print FILE <<EOF if ($maxlt>0); | print FILE <<EOF if ($maxlt>0); | ||
!bgcolor=# | !bgcolor=#FFFFCC|5 | ||
!bgcolor=# | !bgcolor=#FFFFCC|10 | ||
!bgcolor=# | !bgcolor=#FFFFCC|15 | ||
!bgcolor=# | !bgcolor=#FFFFCC|20 | ||
!bgcolor=# | !bgcolor=#FFFFCC|25 | ||
!bgcolor=# | !bgcolor=#FFFFCC|30 | ||
!bgcolor=# | !bgcolor=#FFFFCC|35 | ||
!bgcolor=# | !bgcolor=#FFFFCC|40 | ||
!bgcolor=# | !bgcolor=#FFFFCC|45 | ||
!bgcolor=# | !bgcolor=#FFFFCC|50 | ||
EOF | EOF | ||
print FILE "!bgcolor=# | print FILE "!bgcolor=#FFEECB|".$ex->{"head"}."\n" if (defined($ex)); | ||
my $step = 1; | my $step = 1; | ||
$step = 5 if ($maxstufe > 14); | $step = 5 if ($maxstufe > 14); | ||
my $zeile = 1; | my $zeile = 1; | ||
for(my $stufe=$step; $stufe<=$maxstufe; $stufe+=$step) | for(my $stufe=$step; $stufe<=$maxstufe; $stufe+=$step) | ||
{ | { | ||
print FILE "|-\n"; | print FILE "|-\n"; | ||
print FILE "|bgcolor=# | print FILE "|bgcolor=#FFFFCC|'''$stufe'''\n"; | ||
my $blockfarbe = (($zeile-1)/5)%2; | my $blockfarbe = (($zeile-1)/5)%2; | ||
for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | for (my $lerntech = 0; $lerntech <= $maxlt; $lerntech += 5) | ||
{ | { | ||
my $lernfaktor = 0. | my $lernfaktor = 0.95 ** $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", | ||
(($lerntech + $blockfarbe) % 2) ? " | (($lerntech + $blockfarbe) % 2) ? "FFEECB" : $blockfarbe, | ||
$sekunden / 86400, | $sekunden / 86400, | ||
($sekunden % 86400) / 3600, | ($sekunden % 86400) / 3600, | ||
($sekunden % 3600) / 60; | ($sekunden % 3600) / 60; | ||
} | } | ||
print FILE "|bgcolor=# | print FILE "|bgcolor=#FFFFCC|".$ex->{$stufe}."\n" if (defined($ex)); | ||
$zeile++; | $zeile++; | ||
} | } | ||
print FILE "|} | print FILE "|}\n"; | ||
close FILE; | close FILE; | ||
Zeile 228: | Zeile 183: | ||
return ($z * ($z + 1) / 2); | return ($z * ($z + 1) / 2); | ||
} | } | ||
</pre> | </pre> |