Ship file

Aus Interstellar Rift Wiki
Zur Navigation springenZur Suche springen

Eine exportierbare Schiffskonfigurationsdatei (*.shipz) ist eine FAT-deflate zip-ähnliche Archivdatei, die hauptsächlich zum Austausch von Schiffsplänen zwischen Spielern außerhalb des Steam Workshops verwendet wird. Allerdings kannst du sie auch nutzen, um deine Schiffe mit externen Programmen zu verarbeiten. @@PROTECTED_NNNN@@=== Archivstruktur ===Aktuell (0.1.55d) enthält das Archiv der Schiff-Dateien folgende Liste von Textdateien:

  1. authorId - Eine einfache Textdatei, die die SteamID des Schiff-Erstellers enthält. Endet mit einem Zeilenumbruchzeichen.
  2. authorName - Eine einfache Textdatei, die theoretisch den Namen des Erstellers enthalten sollte, aber derzeit nur aus zwei Zeilenumbrüchen besteht.
  3. device - Eine JSON-Datei, die den aktuellen Zustand aller an Bord befindlichen Geräte und deren Konfiguration, Zugriffslisten und andere Dinge beschreibt.
  4. displayName - Eine einfache Textdatei, die den Schiffnamen enthält. Sie können Spiel-Farbcodes verwenden, um ihn farbenfroh zu gestalten, aber Vorsicht – Spiel-Ladebildschirme und Suchfilter passen sich nicht immer gut daran an. Die Datei endet mit einem Zeilenumbruchzeichen.
  5. hash - Eine einfache Textdatei, die einen 64-Byte-MD5-ähnlichen Hashwert für etwas enthält. Die Datei endet mit einem Zeilenumbruchzeichen.
  6. IRversion - Eine einfache Textdatei, die die aktuelle Spielversion (aka "0.1.55d") enthält, als die Sicherung erstellt wurde. Endet mit einem Zeilenumbruchzeichen.
  7. name - Eine einfache Textdatei, die derzeit nur aus zwei Zeilenumbrüchen besteht.
  8. publishedfileid - Eine einfache Textdatei, die die SteamID des Workshop-Eintrags enthält, der durch die Schiff-Datei repräsentiert wird. Für Sicherungen, die noch nicht in den Steam Workshop hochgeladen wurden, ist es "0". Zwei Sicherungen mit der gleichen "publishedfileid" laden ihren Inhalt als denselben Workshop-Eintrag hoch, daher, wenn Sie mehrere Versionen desselben Schiffes zum Workshop hochladen möchten, exportieren Sie es einfach, ändern Sie "publishedfileid" auf 0, importieren und als neuen Workshop-Eintrag hochladen! Die Datei endet mit einem Zeilenumbruchzeichen.
  9. ship - Eine XML-Datei, die eine Liste von Schiffsbereichen, eine Liste von Außenobjekten (Typ + Position + Farbe) und die Historie der Innenraumänderungen (sogenannte "Anweisungen") enthält. Wenn Sie diese jedoch verwenden möchten, um mehrere Innenraumänderungen eines Schiffes zu rückgängig zu machen, achten Sie darauf, die Device-Datei zu bearbeiten, die ebenfalls bearbeitet werden sollte.
  10. shipVersion - Eine einfache Textdatei, die eine ganze Zahl enthält, die jedes Mal erhöht wird, wenn das Schiff zum Workshop hochgeladen wird, damit das Spiel weiß, ob das Schiff auf Ihrem PC älter ist als die Version, die Sie online haben. Die Datei endet mit einem Zeilenumbruchzeichen.=== Schiff XML ===Das Dokumentenbaum-Wurzelelement ist CShip. Es umschließt zwei Abschnitte: Exterior und Interior.==== Außenrequisiten ====Außenbereich enthält zwei Flags: UseEditorModels>true und CreateDevices>true. Die weiteren beiden Unterabschnitte sind Props und UserPlacedProps (falls es keine Außenobjekte gibt, sind sie wie "<Props />"). Der genaue Unterschied zwischen diesen beiden ist noch nicht klar. Sie enthalten das gleiche Set von CExteriorProp Entitäten. Jede CExteriorProp repräsentiert ein separates Außenobjekt. Zum Beispiel ext_SolarPanel_01:
 <CExteriorProp>
   <PropTypeString>ext_SolarPanel_01</PropTypeString>
   <Position><X>-68</X><Y>-18</Y><Z>10</Z></Position>
   <PaletteIndex>0</PaletteIndex>
   <Transform>
     <M14>0</M14>
     <M24>0</M24>
     <M34>0</M34>
     <M44>1</M44>
     <LocalX><X>1</X><Y>0</Y><Z>0</Z></LocalX>
     <LocalY><X>0</X><Y>-0</Y><Z>-1</Z></LocalY>
     <LocalZ><X>0</X><Y>1</Y><Z>-0</Z></LocalZ>
     <Translation><X>-67</X><Y>-17</Y><Z>11</Z></Translation>
   </Transform>
 </CExteriorProp>

PropTypeString definiert den Typ des Außenobjekts, PaletteIndex - die verwendete Farbschema (scheint es zu ermöglichen, die gesamte Schiffsfarbe auf einmal mit der Funktion "Suchen und Ersetzen" zu ändern), Position - seine Koordinaten und Transform - seine Position (Richtung). Die vollständige Zuweisung jedes Transform Unterfelds ist noch nicht klar.===== Liste der nicht-dekorierten Außenrequisiten =====* ext_UltraHull

 <PropManager>
   <UseEditorModels>true</UseEditorModels>
   <CurrentActivePalette>15</CurrentActivePalette>
   <CreateDevices>true</CreateDevices>
 </PropManager>

Der zweite Unterabschnitt ist ein „RoomManager/Rooms“, der eine Liste der Schiffsbereiche enthält. Jeder Bereich ist als „item“ markiert:

 <item>
   <key>
     <int>0</int>
   </key>
   <value>
     <CShipRoom>
       <Name>Control hub</Name>
       <roomId>0</roomId>
     </CShipRoom>
   </value>
 </item>

Hier „int“ und „roomId“ enthalten die Raum-ID (die exakte gleiche Nummer) und „Name“ definiert den Namen des Raumes.

Der dritte Unterabschnitt ist „SavedInstructions“, der eine Liste der sogenannten „ShipInterior_Instruction“ enthält und im Wesentlichen die gesamte Historie Ihrer Innenraum-Bearbeitungen darstellt. Es fühlt sich an, als würde das Spiel beim Laden der Schiffdatei alle Aktionen simulieren, um das Schiff „wiederherzustellen“. Eine Liste der bekannten Anweisungen:

  • „ShipInterior_Instruction_ClaimTile“ - wenn Sie einen Innenraum-Block im Bau-Modus erstellen;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_ClaimTile">
   <position>
     <X>-108</X>
     <Y>-12</Y>
     <Z>8</Z>
   </position>
   <roomID>6</roomID>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_UnclaimTile“ - wenn Sie einen solchen Block entfernen;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_UnclaimTile">
   <position>
     <X>-8</X>
     <Y>0</Y>
     <Z>0</Z>
   </position>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_AddProp“ - wenn Sie ein Innenraum-Prop in einem Innenraum-Editor hinzufügen;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_AddProp">
   <position>
     <X>-26.6469269</X>
     <Y>-7.43800735</Y>
     <Z>8</Z>
   </position>
   <tileType>MissileLauncher_Left_01</tileType>
   <rotation>2</rotation>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_RemovePropByID“ - wenn Sie es entfernen;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_RemovePropByID">
   <propId>83</propId>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_ChangeActivePalette“ - ändert das ausgewählte Innenraum-Prop-Farbschema;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_ChangeActivePalette">
   <activeColor>8</activeColor>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_RepaintProp“ - malt ein Prop mit dem aktiven Farbschema, Prop-ID ist erforderlich;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_RepaintPropTypeInRoom">
   <propID>1274</propID>
   <singleFloor>false</singleFloor>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_RepaintPropTypeInRoom“ - das Gleiche, aber wenn Sie es mit Shift angeklickt haben;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_RepaintPropTypeInRoom">
   <propID>1274</propID>
   <singleFloor>false</singleFloor>
 </ShipInterior_Instruction>
  • „ShipInterior_Instruction_ChangeRoomName“ - benennt den Raum anhand seiner ID um;
 <ShipInterior_Instruction xsi:type="ShipInterior_Instruction_ChangeRoomName">
   <roomId>8</roomId>
   <name>Turrets</name>
 </ShipInterior_Instruction>