Kategorien
FreewarWiki:Bot/Skripts/npclist2wiki.pl
< FreewarWiki:Bot | Skripts
#!/usr/bin/perl #inout: npclist use constant CUnknown => "?"; use POSIX; setlocale(LC_NUMERIC, "de_DE"); ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); my $myTimestamp = sprintf("%.2d.%.2d.%d %.2d:%.2d", $mday, $mon+1, $year+1900, $hour, $min); print "Diese Tabelle wird von Zeit zu Zeit automatisch aus den Daten aus den einzelnen NPC-Artikeln erstellt (zuletzt am " . $myTimestamp . "). Die Daten hier sollten nicht direkt ge\N{U+0026}auml;ndert werden, weil solche \N{U+0026}Auml;nderungen bei einer Neuerstellung verloren gehen. Stattdessen bitte die Daten auf den Seiten des jeweiligen NPCs korrigieren! Die Buttons neben den \N{U+0026}Uuml;berschriften k\N{U+0026}ouml;nnen zum Sortieren angeklickt werden. Da die Liste sehr lang ist, kann dies allerdings einige Sekunden dauern. {| {{Prettytable|text-align:right;}} class=\"sortable\" |- style=\"text-align:center;\" ! Name || Angr. || LP || XP || Gold || XP/LP || Gold/LP || Gold/XP\n"; sub GetQuotient { my ($dividend, $divisor, $format) = @_; if (($dividend eq CUnknown) || ($divisor eq CUnknown)) { return CUnknown; } if ($divisor == 0) {return "-"; } return sprintf($format, $dividend / $divisor); } sub CheckUnknown { my $number = @_[0]; if (($number eq "?") || ($number eq "-")) { $number = 0;} return $number; } while(<>) { next if (/^GET/); my ($name, $atk, $lp, $xp, $gm, $vk, $items) = split(/;/); printf " |-\n | style=\"text-align:left;\" | [[%s]] || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}} || {{SortKey|{{nts|%s}}|%s}}\n", $name, CheckUnknown($atk), $atk, CheckUnknown($lp), $lp, CheckUnknown($xp), $xp, CheckUnknown($gm), $gm, CheckUnknown(GetQuotient($xp, $lp, "%.2f")), GetQuotient($xp, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $lp, "%.2f")), GetQuotient($gm, $lp, "%.2f"), CheckUnknown(GetQuotient($gm, $xp, "%.0f")), GetQuotient($gm, $xp, "%.0f"); } print " |} [[Kategorie:NPC-Listen]]";