Skyrim:Papyrus Compiler Reference

Aus Skript-Wiki
Version vom 22. August 2012, 16:26 Uhr von Keris (Diskussion | Beiträge) (Die Seite wurde neu angelegt: == Was ist der Compiler? == Der Compiler ist ein Programm, das die geschriebenen Script-Dateien (die .psc-Dateien) nimmt und in ein Format konvertiert (compiliert d.h. ...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Was ist der Compiler?

Der Compiler ist ein Programm, das die geschriebenen Script-Dateien (die .psc-Dateien) nimmt und in ein Format konvertiert (compiliert d.h. übersetzt), das das Spiel verstehen kann (die .pex-Dateien). Während des Prozesses wird auf eine große Anzahl von Fehlern geprüft und ggf. angezeigt. Alle Papyrus-Scripts müssen compiliert werden, bevor sie im Spiel genutzt werden können.

Ausführen des Compilers

Im Creation Kit

Der einfachste Weg, zurr Ausführung einer Compilation ist es das Creation Kit dies über den Papyrus Script Manager machen zu lassen. Einfach auf ein Script rechts-klicken und "Compile" wählen. Dann wird das Script compiliert und man bekommt die Fehler angezeigt. Das Creation Kit nutzt die folgende Kommandozeile, um Scripts zu erzeugen (s.u.):

PapyrusCompiler <file> -i="<scripts folder>" -o="Data\Scripts" -f="TESV_Papyrus_Flags.flg"

Außerhalb des creation Kit

Erfahrene Nutzer mögen sich wünschen, den Compiler mit einer Kommandozeile oder über eine Batch-Datei oder über den Lieblingstexteditor zu starten (wir empfehlen die Installation von Sublime Text und Notepad++). Um das zu tun, sollte die PapyrusCompiler.exe innerhalb des "Papyrus Compiler"-Verzeichnisses ausgeführt werden. Dieses Verzeichnis befindet sich an dem Ort, wo der Editor installiert ist. Natürlich benötigt man noch eine Reihe von Kommandozeilen, um zu sagen, was genau zu tun ist. Wenn der Compiler ohne Kommandozeilen oder mit fehlerhaften gestartet wird, spuckt der zur Erinnerung und Erklärung eine Reihe von Hilfstexten aus.

Das erste, was der Compiler benötigt, ist der Name des zu compilierenden Scripts (oder des Verzeichnisses, wenn man die Flag „-all“ gesetzt hat),

Die gebräuchlichen Kommandozeilen-Parameter sind unten aufgelistet (es gibt noch andere, welche die meisten Nutzer aber nicht benötigen):

-import="<folders>"
-output="<folder>"
-flags="<file>"
-all
-quiet

Import

-import="<folder 1>;<folder 2>;<folder 3>"
-i="<folder 1>;<folder 2>"

Dieser Kommandozeilen-Parameter legt eine Liste von Verzeichnissen fest, in die der Compiler nach anderen Script und der Flag-Datei schaut. Man wird wenigsten das Verzeichnis angeben wollen, das alle Base-Scripts des Spiels enthält. Mehrere sind durch Semikolons getrennt.

Output

-output="<folder>"
-o="<folder>"

Dieser Parameter legt das Ausgabe-Verzeichnis für die übersetzten Dateien fest. Man wird meistens den Spiele "Data/Scripts" wählen.

Flags

-flags="<file>"
-f="<file>"

Dieser Parameter legt die flag-Datei (.flg) fest, die für die Abwicklung der Flags im Script genutzt wird. Dies ist normalerweise "TESV_Papyrus_Flags.flg"

All

-all
-a

Compiliert alle einzelnen Scripts im angegebenen Verzeichnis. (Der Pfadname des Verzeichnisses ersetzt den Dateinamen als erstes Argument an den Compiler). Dies ist üblicherweise schneller als jedes einzelne Script im Verzeichnis unabhängig zu compilieren, da der Compiler Daten wiederverwenden kann.


Quiet

-quiet
-q

Zwingt den Compiler, still zu sein. Es werden nur die Fehler ausgegeben. Das wird üblicherweise für die "all"-Flag genutzt, um die Menge an Spam für die Ausgabe zu reduzieren.


Übliche Fehler

Übliche von Compiler ausgegebene Fehler sind auf einer anderen Seite gelistet.

Disassemblen von Scripts mit PapyrusAssembler.exe

Der Papyrus-Assembler muss sich im selben Verzeichnis befinden wie die pas/pex-Dateien. Es findet KEINE Konvertierung von pex-Dateien zu psc-Dateien statt. Sie werden zu einer halb lesbaren Assembler-ähnlichen Syntax konvertiert.

PapyrusAssembler.exe scriptWithoutExtenstion -D

Disassemblen aller pex-Dateien in einem Verzeichnis

Von cmd:

for /F "tokens=*" %F in ('dir /b *.pex') do Papyrus-Assembler.exe %~nF -D -Q

Von einer Batch-Datei:

for /F "tokens=*" %%F in ('dir /b *.pex') do Papyrus-Assembler.exe %%~nF -D -Q


Links