[INFO] Spielregeln der Signierung

Hier ist der ideale Ort um über Scripts und Mods für X³: Reunion zu diskutieren.

Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators

Locked
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

[INFO] Spielregeln der Signierung

Post by ticaki » Wed, 16. Nov 05, 23:21

Wichtig: Unfertige oder fehlerbehaftete Scripts können den Signiervorgang unnötig kompliziert machen - also feilt lieber an euren Scripten und schickt sie nicht zu früh ein.

Hallo liebe Spielkameraden der X-Reihe,

diese Script-Regeln sollten von Scriptern eingehalten werden, damit ein Script signiert werden kann. Diese Regeln können natürlich in besonderen Fällen auch ausgesetzt werden. Dazu sollte aber ein triftiger Grund vorliegen. Ein Aussetzen einiger Regeln wird dann im einzelnen mit dem jeweiligen Scripter besprochen.

Dieses Regelwerk wird bestimmt mit der Zeit noch einige Änderungen mitmachen. Das ist leider nötigt um alle Signierkandidaten unter einen Hut zu bekommen.

Die Ansprechpartner der Scriptsignierung sind die Moderatoren der Scriptbereiche. Das Signierteam besteht aus Burianek, LV, hraban, moggy2 und ticaki.

eMail scripts@egosoft.com

Wie sollte der Archivaufbau aussehen?
  • Das Archiv sollte aus drei Ordner bestehen. Einmal der Scriptordner [...\scripts], in dem die Script-Dateien abgelegen werden, einmal der Sprachordner [...\t], in dem alle Sprachdateien abgelegt werden und einmal ein Ordner [...\readme], in dem alle Anleitungen abgelegt werden.
  • Das Archiv muss für den Versand an das Signierteam komprimiert werden. Dazu ist ein gängiges Komprimierprogramm zu verwenden. Allerdings werden selbstdekomprimierende Archive aus Sicherheitsgründen sofort gelöscht.
Wie sollen die einzelnen Dateien benannt werden?
  • Es sollten nur Kleinbuchstaben benutzt werden. Script-Dateien müssen im Format [plugin.{Script-Name}.xml] und Initialisierungsscripte im Format [setup.{Script-Name}.xml] vorliegen. Bei Initialisierungsscripten bitte nicht die Init-Extension benutzen.
  • Scripte für die AL-Engine werden ähnlich benannt. Initialisierungsscripte für die AL-Engine müssen im Format [al.plugin.{Script-Name}.xml], Verarbeitungsscripte im Format [al.plugin.{Script-Name}.xml] und Kommandoscripte im Format [plugin.{ScriptName}.xml.cmd] vorliegen.
  • Jetzt fehlen nur noch die Bibliothekenscripte, welche im Format [lib.{Scripter-Kürzel}.{Script-Funktion}.xml] vorliegen müssen. Das Scripter-Kürzel muss aus zwei Buchstaben bestehen.
Was ist bei den Funktionen und Befehlen in den Scripten zu beachten?
  • Vor Benutzung von Speichertabellen (weiterhin Arrays genannt) müssen diese initialisiert werden.
  • Es sollte sparsam mit den Kommandoslots umgegangen werden. Dabei sollte nur sehr selten eine Anzahl von vier Slots erreicht werden. Hier gilt weniger ist mehr.
  • Die Erweiterung sollte auch nicht aus mehr als 20 einzelnen Scriptdateien bestehen. Die Benutzung von bereits signierten Bibliothekenscripten hingegen beschleunigt den kompletten Signiervorgang.
  • Globale Variablen sollten nur verwendet werden, wenn es unbedingt nötig ist. Diese Variablen müssen auf jeden Fall auch gepflegt werden, um Speicherleichen zu vermeiden.
  • Die Variablen sollen im allgemeinen einen Aussagekräftigen Namen erhalten und nicht aus nur Großbuchstaben bestehen. Wiederum sollen die Namenstrings der lokalen und globalen aus nur Kleinbuchstaben bestehen.
  • Objekte müssen vor Gebrauch auf Existenz überprüft werden, um vorab Fehler zu vermeiden.
    Werden Log-Dateien erstellt, so müssen diese klar beschrieben sein und dürfen nur als optionale Funktion angeboten werden.
  • Komplizierte Berechnungen, wie etwa eine Winkelberechnung oder eine Fließkommaoperation sind zu vermeiden.
  • Scripte die in einer Endlosschleife laufen sollten immer auf einem Objekt betrieben werden. Man sollte versuchen Scripte so einzurichten, dass sie sich selbst beenden können, wenn sie nicht mehr verwendet werden oder nicht mehr gebraucht werden.
  • Es sollten Pausen in den Scripten an den richtigen Stellen platziert werden, um das gesamte Spiel zu entlastet und flüssig zu halten.
  • Eine gute Kommentierung in den Scripten hilft dabei eine schnelle Fehlerdiagnose zu erstellen.
Was ist grundsätzlich bei einer Ideenumsetzung zu beachten oder welche Erweiterungen werden nicht signiert?
  • Soll eine Erweiterung ein Aufgabengebiet automatisieren, dann müssen Nachteile entstehen oder weitere Überlegungen vom Spieler gefordert werden. Es darf auf keinen Fall einen Vollautomatisierung entstehen.
  • Geld darf nur von einer Fabrik zum Spieler transferiert werden. Überweisungen von einer Fabrik zu einer anderen Fabrik sind auch nicht erlaubt.
  • Der Scripter sollte immer versuchen Gegenstände nicht herbei zuzaubern. Dazu sollte immer eine kleine Geschichte oder Aufgabe die Idee versüßen.
  • Die Erweiterungen sollten grundsätzlich optisch und technisch ins X-Bild passen. Dazu gehören Firmennamen und Ausrüstungsgegenstände, aber auch kleine Textauszüge und Geschichten im Logbuch. Auf der technischen Seite sollte Ausrüstung auch auf Vorhandensein geprüft werden, damit nicht ohne diese Ausrüstung dessen Funktion genutzt werden kann. Dazu gehört z.B. der Warentransfer zwischen zwei Schiffen im Orbit ohne Goner-Transporter oder ein Sektorsprung ohne Sprungantrieb.
Benennungsbeispiele von Skript-Objekten

Für die Zukunft ist es ganz wichtig, dass die Seitenangaben der Sprachdateien am Anfang des Skripts definiert werden.

001 $PageID = 8000
[…]
500 write to player logbook: sprintf: pageid=$PageID textid=1000,$Value,...
501 $Text = sprintf: pageid=$PageID textid=1000,$Value,...

Die Namen von globalen und lokalen Variablen sollen nur aus Kleinbuchstaben bestehen und die Erweiterung erkennen lassen.

$List.Station = [THIS] -> get local variable: name='plugin.goods.delivery.source'
$ScriptVersion = get global variable: name='plugin.goods.delivery.version'

Hier sieht man auch die Benennung von normalen Variablen. Hierbei ist darauf zu achten, dass niemals nur Großbuchstaben benutzt werden, wie etwa $SCRIPTVERSION.

*Orginal geschrieben von Lucike

User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike » Sun, 24. Sep 06, 08:27

Chronologischer Sortiereintrag

Locked

Return to “X³: Reunion - Scripts und Modding”