[TOOL] TShips Merger

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

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

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

[TOOL] TShips Merger

Post by Cyborg11 » Sat, 2. Jul 11, 12:08

Name: X3 TShipsMerger
Autor: Cyborg11
Version: 1.01
Beschreibung: Dieses Tool kann zwei TShips zu einer zusammenfügen. Nützlich, wenn man Schiffe aus einer anderen Mod in seinem Spiel haben möchte.
Außerdem kann das Tool nur die Cockpitpfade austauschen, um somit eine Mod kompatibel mit einer Cockpitmod zu machen. Natürlich haben auch nur die gleichen Schiffe, die in beiden Mods vorkommen, die "besseren" Cockpits, alle anderen haben die Standardcockpits der Cockpitmod.
Beide TShips Dateien sollten im .txt Format vorliegen. Dies kann man mit dem X3 Editor 2 leicht bewerkstelligen.
Die neue TShips Datei wird im selben Ordner, indem auch das Tool liegt, erstellt. Diese Datei liegt im .txt Format vor und sollte mit dem X3 Editor 2 in eine .pck umgewandelt und einer .cat hinzugefügt werden oder in den types Ordner geschoben werden (je nachdem, ob die Dateien der hinzugefügten Mod in einer .cat oder entpackt im X3TC Verzeichnis liegen), ansonsten fehlen ingame die Modelle der Schiffe. Dieses Tool befasst sich nur mit der "Konfiguration" der Schiffe.
Download: http://cyborg11.cy.funpic.de/downloads/ ... Merger.jar
Voraussetzung: Java muss installiert sein
Sprache: Java
Bugs:
  • Bisher keine bekannten
Screenshots:
ImageImageImage

Changelog:
  • v1.01
    • Bestätigungsnachricht hinzugefügt, wenn das Tool fertig ist
    • Fehler behoben, dass keine neue TShips Datei angelegt wurde, wenn man die Cockpits ersetzt hat
    • Das Aussehen des Tools passt sich nun automatisch an das Betriebssystem an (z. B. Aero Design bei Windows).
      Wer das standardmäßige Metal LookAndFeel von Java für das Programm haben möchte, kann das in den Optionen ausstellen.
    • Beim Beenden des Programmes werden nun die Pfade und die letzte Position des Fenster in einer "settingsTSM.dat" Datei gespeichert
Last edited by Cyborg11 on Mon, 18. Jul 11, 12:19, edited 12 times in total.
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

Feuerriese
Posts: 204
Joined: Thu, 28. Sep 06, 12:25
x4

Post by Feuerriese » Sat, 2. Jul 11, 16:04

Mit dem Plugin Manager Lite lassen sich Schiffe als .spk Paket einfügen, die man vorher irgendwo herausgeholt hat - mit dem Ship Creator. Aber wenn du so heiß aufs programmieren bist, dann mach doch eine dropbox für scene-files, die alle Daten automatisch in die Tships einträgt. DAS wäre praktisch. Besser noch, das wäre eine enorme Arbeitserleichterung! ;) Vielleicht als Plugin für den X3 Editor...nur ein Vorschlag, aber wehe dir, ich hab das Ding Weihnachten immer noch nicht!

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sat, 2. Jul 11, 16:11

Plugin für den X3 Editor ... hm ... mal sehen :P
Unterstützt der X3 Editor denn Plugins?
Ich dachte eher, dass man bei meinem Programm zwei TShips.txt übergibt. Die erste, die erweitert werden soll und die zweite, die die zusätzlichen Schiffe enthält.
Dann wird überprüft, welche Dateien fehlen und dann in einer neuen TShips.txt zusammengefügt, sodass die Schiffe auch mit drinnen stehen.
Außerdem wird man im Menü noch einstellen können, ob man nur die Cockpits ersetzt haben möchte, sodass man dann jede Mod mit einer Cockpit Mod kompatibel machen kann :) Die Schiffe, die in beiden Mods vorhanden sind, haben dann natürlich die "einzigartigen" Cockpits aus der Mod. Die anderen werden dann die Standardcockpits haben :p


Aber vorher drei Fragen zur tships.txt:
  1. 50;549;
    Was bedeuten diese beiden Zahlen am Anfang? Die zweite wird wahrscheinlich die Anzahl der Einträge sein oder?
  2. Jede Zeile / jedes Schiff beginnt mit
    0;0;
    richtig?
  3. ships\M8\argon_M8_scene;ships\argon\cockpits\argon_m8_cp_scene;
    Der erste Pfad ist das Schiffsmodel und der zweite das Cockpit, auch richtig?
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

Striker304
Posts: 890
Joined: Fri, 26. Mar 10, 22:15
x3tc

Post by Striker304 » Sat, 2. Jul 11, 16:30

Ein TShips-Merging-Tool wäre super!

Ich würde erst mal nur wirklich die beiden TShips zusammenfügen lassen. Also man wählt zu Beginn 2 TShips aus, und das Programm fügt dann alle Einträge zu einer gemeinsamen TShips zusammen.
Die Einträge aus der zuerst ausgewählten TShips haben vorrang, das heitß, wenn in beiden TShips ein bestimmter Eintrag vorkommt (zB Nova), dann wird nur die Nova aus der ersten TShips genommen und die 2. bleibt unberücksichtigt. Also so wie du es vorgeschlagen hast.
Was bedeuten diese beiden Zahlen am Anfang? Die zweite wird wahrscheinlich die Anzahl der Einträge sein oder?
So ist es. Die 50 könnte iwie ne Versionsnummer sein, scheint aber nicht wichtig zu sein. Ich habe ne TShips mit 380 Einträgen gefunden, und da steht auch die 50 davor.

2. Ja
3. Im Prinzip schon, nur dass der erste Pfad die Schiffsscene enthält. Also quasi das Modell.


Am Besten wäre es finde ich aber, wenn du das Tool für die Components/Dummies.txt anbieten würdest. Die braucht man nämlich für die turrets...

mfg
Striker

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sat, 2. Jul 11, 17:02

Striker304 wrote:Ein TShips-Merging-Tool wäre super!

Ich würde erst mal nur wirklich die beiden TShips zusammenfügen lassen. Also man wählt zu Beginn 2 TShips aus, und das Programm fügt dann alle Einträge zu einer gemeinsamen TShips zusammen.
Die Einträge aus der zuerst ausgewählten TShips haben vorrang, das heitß, wenn in beiden TShips ein bestimmter Eintrag vorkommt (zB Nova), dann wird nur die Nova aus der ersten TShips genommen und die 2. bleibt unberücksichtigt. Also so wie du es vorgeschlagen hast.
Genau so soll mein Programm später arbeiten :)
Und halt noch die Option, dass nur die Cockpits ersetzt werden.
Striker304 wrote:Am Besten wäre es finde ich aber, wenn du das Tool für die Components/Dummies.txt anbieten würdest. Die braucht man nämlich für die turrets...
Wenn das Programm steht, kann man es ja dann beliebig erweitern. Aber erstmal muss das Grundgerüst stehen :)
Dann kann man auswählen, ob TShips.txt oder Dummies.txt ;P

Der Benutzer kann die ganzen Ordner der Schiffe ja dann selbst mit kopieren. :]

Noch ne kurze Frage. Welche der Zahlen ist denn die ID des Schiffes?
0;0;0.005814;0.004654;0.005;SG_SH_TL;3161;29185;1334;102;1;11;373;4400;112;247;ships\argon\argon_TL_scene;ships\argon\cockpits\argon_tl_cp_scene;0;8;17100;0.009995;4;5;16387;9;5;5;60000;60000;87;57;1;59;4;58;2;59;3;0;0;0;0;5;5;1;375000;37;38;0;0;7;OBJ_SHIP_TL;5;1;0;ships\argon\argon_TL;0;2;1;ships\props\cameradummy;10;3;2;ships\props\cameradummy;11;4;3;ships\props\cameradummy;12;5;4;ships\props\cameradummy;13;5;1;0;1;1;1;0;0;0;;-1;1;2;2;2;1;1;ships\props\bigturret_dummy;1;ships\props\bigturret_rightweapon;3;2;1;ships\props\bigturret_dummy;1;ships\props\bigturret_leftweapon;4;3;2;3;2;3;1;ships\props\bigturret_dummy;4;ships\props\bigturret_rightweapon;3;4;1;ships\props\bigturret_dummy;4;ships\props\bigturret_leftweapon;4;5;2;4;2;5;1;ships\props\bigturret_dummy;2;ships\props\bigturret_rightweapon;3;6;1;ships\props\bigturret_dummy;2;ships\props\bigturret_leftweapon;4;7;2;5;2;7;1;ships\props\bigturret_dummy;3;ships\props\bigturret_rightweapon;3;8;1;ships\props\bigturret_dummy;3;ships\props\bigturret_leftweapon;4;1;351145;25;1;0;351145;1000;0;0;SS_SH_A_TL;
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13923
Joined: Sun, 20. Nov 05, 23:45
x4

Post by UniTrader » Sat, 2. Jul 11, 17:40

Cyborg11 wrote:Noch ne kurze Frage. Welche der Zahlen ist denn die ID des Schiffes?
0;0;0.005814;0.004654;0.005;SG_SH_TL;3161;29185;1334;102;1;11;373;4400;112;247;ships\argon\argon_TL_scene;ships\argon\cockpits\argon_tl_cp_scene;0;8;17100;0.009995;4;5;16387;9;5;5;60000;60000;87;57;1;59;4;58;2;59;3;0;0;0;0;5;5;1;375000;37;38;0;0;7;OBJ_SHIP_TL;5;1;0;ships\argon\argon_TL;0;2;1;ships\props\cameradummy;10;3;2;ships\props\cameradummy;11;4;3;ships\props\cameradummy;12;5;4;ships\props\cameradummy;13;5;1;0;1;1;1;0;0;0;;-1;1;2;2;2;1;1;ships\props\bigturret_dummy;1;ships\props\bigturret_rightweapon;3;2;1;ships\props\bigturret_dummy;1;ships\props\bigturret_leftweapon;4;3;2;3;2;3;1;ships\props\bigturret_dummy;4;ships\props\bigturret_rightweapon;3;4;1;ships\props\bigturret_dummy;4;ships\props\bigturret_leftweapon;4;5;2;4;2;5;1;ships\props\bigturret_dummy;2;ships\props\bigturret_rightweapon;3;6;1;ships\props\bigturret_dummy;2;ships\props\bigturret_leftweapon;4;7;2;5;2;7;1;ships\props\bigturret_dummy;3;ships\props\bigturret_rightweapon;3;8;1;ships\props\bigturret_dummy;3;ships\props\bigturret_leftweapon;4;1;351145;25;1;0;351145;1000;0;0;SS_SH_A_TL;
das rote ODER DIE POSITION IN DER TSHIPS
(also die derzeit verwendete Mod muss immer Priorität haben; zugehörige Scripts etc. kompatibel machen wird durch das häufige nutzen der TShips-Position erschwert..)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sat, 2. Jul 11, 17:51

Danke :)
Also hätte dieses Beispielschiff die ID 0 (fängts bei 0 an?) bzw. die ID SS_SH_A_TL richtig?
Das heißt, wenn man zwei TShips zusammenwirft, können Skripte nicht mehr funktionieren?
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13923
Joined: Sun, 20. Nov 05, 23:45
x4

Post by UniTrader » Sat, 2. Jul 11, 18:52

Cyborg11 wrote:Danke :)
Also hätte dieses Beispielschiff die ID 0 (fängts bei 0 an?) bzw. die ID SS_SH_A_TL richtig?
Das heißt, wenn man zwei TShips zusammenwirft, können Skripte nicht mehr funktionieren?
jep, die Integer-ID fängt bei 0 an (und wird Intern meistens genutzt), die String-ID ist beliebig, muss aber einmalig sein..

und es funktionieren nur die Scripte (UND SPIELSTÄNDE) die mit der TShips deren Int-IDs unverändert übernommen wurden erstellt wurde.. sprich am besten wäre es wenn dein Prog automatisch die aktuell verwendete TShips als TShips nummer 1 auswählt und daran dann die Einträge aus einer weiteren TShips einfügt

(die Dateiprioritäten von X kennst du ja hoffentlich? )
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sun, 3. Jul 11, 11:24

UniTrader wrote:und es funktionieren nur die Scripte (UND SPIELSTÄNDE) die mit der TShips deren Int-IDs unverändert übernommen wurden erstellt wurde.. sprich am besten wäre es wenn dein Prog automatisch die aktuell verwendete TShips als TShips nummer 1 auswählt und daran dann die Einträge aus einer weiteren TShips einfügt
Überschrieben würde sowieso nie etwas. Die zweite TShips, die ja sowieso eine Mod ist, die man noch zusätzlich einbauen möchte, wird einfach unten an die aktuelle erste TShips angehängt.
Bei der Cockpitoption werden nur die Cockpitpfade überschreiben.
Also sollte es da eigentlich keine Kompatibilitätsprobleme geben :)
UniTrader wrote:(die Dateiprioritäten von X kennst du ja hoffentlich? )
Nein, da ich kein Modder bin, aber du kannst mich doch sicher aufklären :)
Oder meinst du damit, dass Fakepatches mit einer höheren Nummer Vorrang vor den anderen haben? Und dass die entpackten Dateien in den Ordner auch Vorrang haben?
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13923
Joined: Sun, 20. Nov 05, 23:45
x4

Post by UniTrader » Sun, 3. Jul 11, 11:41

Cyborg11 wrote:
UniTrader wrote:(die Dateiprioritäten von X kennst du ja hoffentlich? )
Nein, da ich kein Modder bin, aber du kannst mich doch sicher aufklären :)
kurz zusammengefasst:

TShips.txt in der 01.cat/dat < TShips.txt in der 02.cat/dat < TShips.txt in der 03.cat/dat < ... < TShips.txt in der MOD-.cat/dat < TShips.pck in der 01.cat/dat < TShips.pck in der 02.cat/dat < TShips.pck in der 03.cat/dat < ... < TShips.pck in der MOD-.cat/dat < TShips.pck im types-Verzeichnis

wo ich die TShips.txt aus dem types-verzeichnis einordnen soll weiss ich grad selber nicht aber ich glaube diese hatte die allerhöchste priorität..

anders formuliert: gepackte dateien haben vorrang vor ungepackten, Dateien in cats/dats mit höherer nummer haben vorrang vor denen mit niedriger Nummer, Dateien in der Mod Cat/Dat haben vorrang vor den Nummerierten Cats/Dats und die Dateien im Stammverzeichnis haben die höchste Priorität..

Packen/Entpacken (pck <> txt) kannst du die Dateien mit der zlib.dll (hier wurde seit TC der Deflate-Algorithmus verwendet ;) ), zum zugriff auf Cats/Dats gibt es sicher auch irgendwo auf den Toolseiten für X ne lib (falls nicht: iirc steht der neue X3Editor unter ner Open Source-Lizenz, sprich wenn du dein rogramm ebenfalls unter die gleiche Lizenz stellst kannst du die Programmteile daraus selber weiter nutzen ;) )
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sun, 3. Jul 11, 11:46

Der X3 Editor bzw. die Bibliotheken sind aber bestimmt in C++ geschrieben oder?
Mein Tool wird dann in Java geschrieben. Kann ich da dann trotzdem Bibliotheken aus anderen Programmiersprachen verwenden?

PS: Du warst mitm Posten langsamer als ich mitm Editieren oben :p Aber ich dachte immer, dass die entpackten Dateien die höchste Priorität haben.
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13923
Joined: Sun, 20. Nov 05, 23:45
x4

Post by UniTrader » Sun, 3. Jul 11, 11:56

bei Java hab ich keine ahnung, aber in python ist es möglich Programmteile in einer anderen Programmiersprache zu schreiben
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sun, 3. Jul 11, 12:23

Habe mal ein bisschen gegoogelt und in Java ist das mit Java Native Interface (JNI) möglich :)

Die Frage ist jetzt noch was es für Funktionen in der zlib.dll gibt, damit ich diese dann auch benutzen kann, denn dann wäre es egal, ob man meinem Programm eine .pck oder eine .txt Datei gibt.
EDIT: Ok habe einen DLL Viewer gefunden, der mir auch die Methoden anzeigt. Das Problem ist eher, dass bei diesem Viewer keine Parameter und Rückgabewerte dabei stehen :S
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13923
Joined: Sun, 20. Nov 05, 23:45
x4

Post by UniTrader » Sun, 3. Jul 11, 12:50

schau doch einfach auf die homepage der zlib ( http://zlib.net ), da findest du alles nötige (Anleitungen, den Source Code etc.) ;)
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

User avatar
Cyborg11
Posts: 570
Joined: Mon, 27. Aug 07, 12:27
x3tc

Post by Cyborg11 » Sun, 3. Jul 11, 13:14

Ist ja interessant :D
Aber da nehme ich doch dann lieber gleich die Bibliothek von Java, da die .pck Dateien ja eigentlich gar nichts anderes sind als .zip Dateien :)
Also brauch ich die zlib.dll Bibliothek gar nicht, trotzdem danke :)
***modified*** und stolz drauf
Meine Tools: ReadTextFixer - X3 Übersetzer - TShipsMerger

Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”