Dazu ist es inzwischen recht alt und ich hab mich auch jetzt länger nicht mit dem Thema befasst, aber wenn jemand ein eigenes Tut erstellen möchte, das vielleicht etwas genauer ist, kann er das hier gerne als Vorlage oder Ansatz verwenden, wenn ich dabei erwähnt werde.
Tutorial zum erstellen von eigenen Spielstarts
(Achtung: dieses Tutorial beinhaltet noch keine perfekte Lösung, aber wenn ihr euch an die Schritte haltet, sollte alles so weit funktionieren

Bin jederzeit für Kritik, Verbesserungsvorschläge und/oder Ergänzungen offen.
Wer wollte nicht schon immer mal seinen eigenen, perfekt auf einen zugeschnittenen Spielstart haben? - Also ich jedenfalls schon

Ich hab ein wenig mit der Suchfunktion rumgespielt und bin dann auf dieses Topic im englischen Scripts and Modding Bereich gestoßen. Es hat mir soweit recht gut geholfen, allerdings wollte ich gerne auch ein Tutorial auf deutsch bereit stellen, da nun nicht jeder unbedingt genug Englisch versteht um sich da durchzuarbeiten.
Das Ziel dieses Tutorials
ist es einen eigenen Spielstart wie diesen hier zu erstellen
http://img16.imageshack.us/img16/8880/lar.png
(Bisher bekomm ich das leider nur hin wenn ich die 0001-L049.xml veränder... Bin jederzeit für Lösungsvorscläge offen.)
1. Was wird benötigt
- X3:TC 1.4 (Keine Ahnung wie das ganze in Reunion aussieht)
- (Den aktuellen X3 Editor von doubleshadow)
- Den aktuellen ModManager von doubleshadow
- Einen Editor, mit dem man .xml Files verändern kann (ich nutze Notepad++)
- Geduld, falls nicht alles auf Anhieb klappt
- Kaffee
ach ja, macht Backups von den cats/dats in denen ihr rumpfuscht, danke
2. Wie wirds gemacht
Schritt 1 (editieren der gamestarts.xml):
Öffnet mit dem ModManager die cat/dat mit der aktuellen gamestarts.xml (Das im Manager .pck steht ist normal)
In der aktuellen Version (1.4) ist das die 06.cat und extrahiert diese Datei.
Öffnet die extrahierte gamestarts.xml, das ganze sollte etwa so aussehen:
Code: Select all
<?xml version="1.0" encoding="iso-8859-1" ?>
<gamestarts>
<!-- Bitmask
1 =
2 = Terran plot completed
4 = Fight Rank 3,333 reached
8 = Trade Rank 3,333 reached
16 = Fight Rank 100,000 reached
32 = Trade Rank 100,000 reached
64 = Goner Plot Complete
128 = Tormented Teladi Completed
256 = HUB plot completed
512 = Argon Rank 10,000
1024 = Boron Rank 10,000
2048 = Split Rank 10,000
4096 = Paranid Rank 10,000
8192 = Teladi Rank 10,000
16384 = Argon Rank 333
32768 =
65536 =
-->
<!-- Terran Defender -->
<gamestart id="101" name="{1900,2001}" description="{1900,2101}" difficulty="{1900,2201}" image="start08" plot="1">
<player name="{1900,2301}" species="{1900,2401}" gender="{1900,2501}" age="{1900,2601}"/>
<!-- Uranus -->
<sector x="10" y="1"/>
<ship typename="SS_SH_USC_M4"/>
</gamestart>
<!-- USC Commander -->
<gamestart id="102" name="{1900,2002}" description="{1900,2102}" difficulty="{1900,2202}" image="start01" plot="1" requirements="6">
<player name="{1900,2302}" species="{1900,2402}" gender="{1900,2502}" age="{1900,2602}"/>
<!-- Uranus -->
<sector x="10" y="1"/>
<ship typename="SS_SH_USC_M3"/>
</gamestart>
<!-- SPARE SLOT FOR ALTERNATIVE TERRAN START -->
<!-- STANDARD AVAILABLE STARTS -->
<!-- Argon Patriot -->
<gamestart id="104" name="{1900,2004}" description="{1900,2104}" difficulty="{1900,2201}" image="start04" plot="1">
<player name="{1900,2304}" species="{1900,1203}" gender="{1900,2504}" age="{1900,2604}"/>
<!-- Omicron Lyrae -->
<sector x="13" y="6"/>
<ship typename="SS_SH_A_M4P"/>
</gamestart>
<!-- Humble Merchant -->
<gamestart id="105" name="{1900,304}" description="{1900,1004}" difficulty="{1900,1504}" image="start05" plot="1">
<player name="{1900,1104}" species="{1900,1204}" gender="{1900,1304}" age="{1900,1404}"/>
<!-- Herron's Nebula -->
<sector x="1" y="2"/>
<ship typename="SS_SH_A_TS"/>
</gamestart>
<!-- Bankrupt Assassin -->
<gamestart id="106" name="{1900,305}" description="{1900,1005}" difficulty="{1900,1505}" image="start06" plot="1">
<player name="{1900,1105}" species="{1900,1205}" gender="{1900,1305}" age="{1900,1405}"/>
<!-- Aladna Hill -->
<sector x="7" y="6"/>
<ship typename="SS_SH_S_M3"/>
</gamestart>
...
Wichtig für uns ist alles was zwischen den <gamestart> ... </gamestart> tags steht
Beispiel:
Code: Select all
<!-- Unholy Traitor -->
<gamestart id="114" name="{1900,2014}" description="{1900,2114}" difficulty="{1900,2214}" image="start11" plot="1" requirements="2052">
<player name="{1900,2314}" species="{1900,2414}" gender="{1900,2514}" age="{1900,2614}"/>
<sectors>
<sector x="15" y="15"/>
<sector x="15" y="3"/>
<sector x="18" y="5"/>
<sector x="7" y="2"/>
<sector x="8" y="3"/>
<sector x="6" y="4"/>
</sectors>
<ship typename="SS_SH_P_M3P_PROTO"/>
</gamestart>
Code: Select all
<!-- ... -->
Kommentare, können ignoriert werden
Code: Select all
<gamestart id="114" name="{1900,2014}" description="{1900,2114}" difficulty="{1900,2214}" image="start11" plot="1" requirements="2052">
<player name="{1900,2314}" species="{1900,2414}" gender="{1900,2514}" age="{1900,2614}"/>
<gamestart
name="{1900,2014}" = Name des Spielstarts, nicht des Spielers
description="{1900,2114}" = Beschreibung des Spielstarts
difficulty="{1900,2214}" = Schwierigkeitsgrad (2201 = normal, 2202 = leicht, 2204 = mittel, 2210 = schwer, 2211 = sehr schwer, 2212 schwer (wieder?), 2214 = ganz schön schwer, 2217 = ziemlich schwer, 2218 = (nochmal?) schwer)
image="start11" = Startbild (man kann auch selbst eins erstellen, sucht dazu die startbilder (sollten in der 03.cat liegen) und haltet euch an deren Format, Maße, Benennund und den Ort wo sie gespiechert sind um ein eigenes zu erstellen)
plot="1" Story aktiviert (besser einfach Finger weg)
requirements="2052" wenn ihr euren neuen Spielstand erst freischalten wollt, dann gebt hier eine Zahl ein (am besten einfach an die requirements der andren Spielstände halten), ansonsten löscht das einfach
>
<player
name="{1900,2314}" = Spielername
species="{1900,2414}" = Rasse (Schaut einfach nach wie das bei den anderen Spielständen aussieht und dann copy und paste)
gender="{1900,2514}" Geschlecht (Wieder nachgucken)
age="{1900,2614}" Alter (nachgucken...)
/>
Wichtig für die Sprachdatei sind
name="{1900,2014}" = Name des Spielstarts, nicht des Spielers (in <gamestart>)
description="{1900,2114}" = Beschreibung des Spielstarts
name="{1900,2314}" = Spielername (in <player/>)
die Zahlen in den geschweiften Klammern sagen dem Spiel wo sie die richtigen Texte finden, durch copy und paste kommen wir hier nicht weiter, da wir doch individuelle Texte wollen. Also kommen wir nicht drumherum die Sprachdatei zu verändern...
Code: Select all
<sectors>
<sector x="15" y="15"/>
<sector x="15" y="3"/>
<sector x="18" y="5"/>
<sector x="7" y="2"/>
<sector x="8" y="3"/>
<sector x="6" y="4"/>
</sectors>
Bei den Koordinaten gibt es zwei Dinge zu beachten:
1. Sie beginnen bei x="0" y="0"
2. auch wenn Königstal bei [0,0] liegt, scheint der Kuipergürtel bei [7,0] zu liegen (scheinbar sieht das im Programmcode etwas anders aus, als auf der Karte) (:/ einfach mal ausprobieren, bei falschen Koordinaten landet man immer in Königstal, also sind deshalb keine Abstürze zu befürchten)
Code: Select all
<ship typename="SS_SH_P_M3P_PROTO"/>
SS_SH_ Volkskürzel _ Schiffstyp _ Schiffsvariante
zB SS_SH_B_M5 = Boron M5
(versucht euch da wieder an den anderen Starts zu orientieren)
Mein Lar Händler als fertiges Beispiel
Code: Select all
<!-- Lar Händler -->
<gamestart id="107" name="{7521,2005}" description="{7521,2105}" difficulty="{1900,2204}" image="start09" plot="1">
<player name="{7521,2305}" species="{1900,2418}" gender="{1900,2518}" age="{1900,2604}"/>
<!-- Great Reaf -->
<sector x="2" y="14"/>
<ship typename="SS_SH_B_TS"/>
</gamestart>
also auf zu
Schritt 2 (Einfügen individueller Texte):
Öffnet mit dem ModManager die 06.cat (wir sind immer noch in der Version 1.4 des Spiels)
und extrahiert die 0001-L049.xml
Öffnet die extrahierte Datei am besten mit dem Text Resource Editor aus dem X3 Editor (Ein xml-editor oder gar ein Texteditor würde es zur Not auch tun)
http://img11.imageshack.us/img11/6738/zeug.png
(Wenn dort [pages in memory] steht, habt ihr was falsch gemacht. open -> 0001-L049.xml, dann sollte da der Pfad der Datei stehen)
per Editor fügt ihr einfach diese Zeilen hinzu
Code: Select all
<page id="7521" title="EigenerStart" descr="">
<t id="2005">NamevonmeinemStart</t>
<t id="2105">Als Modder und noch dazu als X3-Süchtiger hat man es nicht grade leicht...</t>
<t id="2305">TollerSpielername</t>
</page>
Mit dem Text Resouce Editor sucht ihr ebenfalls entweder nach der 1900 in der linken Spalte und fügt in der Rechten die neuen Einträge ein
Editiert entsprechend auch die drei Einträge in der gamestarts.xml
Schritt 3 (editieren der start.xml)
Extahiert die start.xml aus der 04.cat.
ich weiß nicht so recht was das hier bedeutet, hab aber meinen Spielstart nach dem selben Muster hinzugefügt
Code: Select all
<do_when value="{player.age}" min="20">
Code: Select all
<do_when value="{player.gamestart}" exact="101" comment="Terran Defender">
<set_value name="Terran Plot" exact="1"/>
<set_value name="HUB Plot" exact="1"/>
<set_value name="HQ Plot" exact="1"/>
</do_when>
scrollt weiter runter und kopiert einen Der <do_when ...> ... </do_when> Einträge wo mehr zwischen steht
als Beispiel mein Lar Händler
Code: Select all
<do_when value="{player.gamestart}" exact="107" comment="Lar Merchant">
<reward_player>
<money min="50000" max="100000"/>
<notoriety>
<relation race="argon" operation="set" exact="friend"/>
<relation race="boron" operation="set" exact="friend"/>
<relation race="paranid" operation="set" exact="neutral"/>
<relation race="split" operation="set" exact="neutral"/>
<relation race="teladi" operation="set" exact="friend"/>
<relation race="goner" operation="set" exact="friend"/>
<relation race="pirate" operation="set" exact="neutral"/>
<relation race="khaak" operation="set" exact="min" mutual="1"/>
<relation race="xenon" operation="set" exact="min" mutual="1"/>
<relation race="atf" operation="set" exact="{lookup.notoriety@noton1}"/>
<relation race="terran" operation="set" exact="neutral"/>
<relation race="yaki" operation="set" exact="neutral"/>
</notoriety>
<equipment>
<ware typename="SS_SHIELD_B" exact="1"/>
<ware typename="SS_WARE_TECH213" exact="{player.ship.equipment.SS_WARE_TECH213.maxcount}/2"/>
<ware typename="SS_WARE_TECH231" exact="1"/>
<ware typename="SS_WARE_TECH246" exact="{player.ship.equipment.SS_WARE_TECH246.maxcount}/2"/>
</equipment>
<property>
<ship typename="SS_SH_A_M5">
<equipment>
<ware typename="SS_SHIELD_A" exact="2"/>
<ware typename="SS_WARE_TECH231" exact="1"/>
<ware typename="SS_WARE_TECH213" exact="{player.ship.equipment.SS_WARE_TECH213.maxcount}/4"/>
</equipment>
</ship>
</property>
<cargo>
<ware typename="SS_WARE_ENERGY" exact="23"/>
</cargo>
</reward_player>
<set_value name="ATF Notoriety" exact="{lookup.notoriety@notop1}"/>
<set_value name="Terran Link Plot" exact="1"/>
<set_value name="HUB Plot" exact="1"/>
<set_value name="HQ Plot" exact="1"/>
</do_when>
relation race ist eure Startbeziehung zu den einzellnen Völkern (orientiert euch an den anderen Eintägen)
<equipment> ... </equipment> Ausrüstung eures Startschiffs
<property> <ship> ... </ship> </property> Zusätzliche Schiffe + Ausrüstung (hab das noch nicht ausprobiert)
(ob auch Stationen möglich wären? :/)
<cargo> ... </cargo> waren im Laderaum des Startschiffes (wenn innerhalb von <ship> ... </ship> für den laderaum des Extraschiffes)
Schritt 4 (Eintüten und ab dafür

Erstellt, falls nicht vorhanden, einen "mods"-Ordner im X3:TC Verzeichnis (.../X3 Terran Conflict/mods)
Öffnet den ModManager und erstellt eine neue .cat Datei in diesem Verzeichnis. Diese datei kann jeden beliebigen Namen haben.
So werden die Änderungen vom Spiel als Mod erkannt und lassen sich leicht deaktivieren.
In diese datei kommen die veränderten Dateien
Code: Select all
t\001-L049.xml
director\start.xml
L\true\gamestarts.xml
Schritt 5 (für den Fall, dass ein Patch/Mod die hier verwendeten Dateien überschreibt)
Sucht nach den aktuellsten Versionen der drei Dateien (immer die höchste .cat/.dat mit der entsprechenden Datei) und kopiert dort eure Änderungen wieder rein.
nochmal: macht Backups, danke und viel Spaß noch

Edit: Image-Tags der Bilder entfernt. Bitte Forenregeln beachten: Bilder in Beiträgen dürfen nicht mehr als 640x480 Pixel und 100KB groß sein. X2-Illuminatus
Hier noch ein weiterer, vielleicht verständlicherer Ansatz von Bughu Baas:
Bughu Baas wrote:Mal sehen, ob ich das verständlicher hinkriege...
Also, als erstes extrahiert man folgende Dateien:
director/start.pck (aus 04.cat)
L/true/gamestarts.pck (aus 06.cat)
t/0001-L049 (auch aus 06.cat)
... und zwar am besten mit Pfaden direkt ins X3TC-Hauptverzeichnis. Befindet sich danach dort ein "director"-Verzeichnis, sollte alles geklappt haben.
Dann nimmt man einen Texteditor. Notepad funzt auch, ist aber unbequem. Notepad2 oder Notepad++ (über Google suchen) installieren und die erste Datei öffnen:
director/start.xml
Hier suchen wir nach dem Text "Pious Paranid". Wir kopieren alles, was dort zwischen <do_when value="{player.gamestart}"... und </do_when> steht und fügen es daunter wieder ein. Nun sollte der Pious Paranid doppelt vorhanden sein.
Jetzt ändern wir die ID (143) im zweiten Paraniden ab, ich habe 3001 genommen, das funzt wunderbar. Welche Zahl man nimmt, ist wohl egal, solange diese Zahl nur eindeutig (nicht doppelt vorhanden) ist. Die ID merken, die brauchen wir gleich noch! Auch den comment-Text (da wo jetzt immer noch "Pious Paranid" steht) sollte man ändern. Bitte KEINE UMLAUTE nehmen!
Wir suchen nochmals nach dem "Pious Paranid" und sollten viel weiter unten in der Datei ein weiteres mal fündig werden. Auch hier kopieren alles, was dort zwischen <do_when value="{player.gamestart}"... und </do_when> steht und fügen es daunter wieder ein. Hier gehts ans eingemachte. Man kann dort fast alles ändern was man will, bis auf das Spielerschiff und den Startsektor (das kommt später). Alles, was man hier angibt, bekommt der Spieler von Anfang an. Als erstes sollte die ID geändert werden, und zwar auf die Nummer von vorhin. Wer ein wenig Englisch kann sollte sich an den anderen Starts informieren was man so machen kann.
Wichtig ist hierbei die Verschachtelung! Ein funktionierendes Beispiel:(die beiden Schiffe dort sind selbsterstellt, wie Schiffe heißen kann man über den X3-Editor erfahren). Alles, was in "comment" steht kann man ohne Bedenken ändern, das ist nur zur Info des Erstellers. Auch hier KEINE UMLAUTE!Code: Select all
<do_when value="{player.gamestart}" exact="3001" comment="Argon Explorer"> <reward_player> <money exact="0"/> <notoriety> <relation race="argon" operation="set" exact="friend+51"/> <relation race="boron" operation="set" exact="friend+35"/> <relation race="paranid" operation="set" exact="enemy-4"/> <relation race="split" operation="set" exact="enemy-2"/> <relation race="teladi" operation="set" exact="neutral"/> <relation race="goner" operation="set" exact="friend"/> <relation race="pirate" operation="set" exact="min" mutual="1"/> <relation race="khaak" operation="set" exact="min" mutual="1"/> <relation race="xenon" operation="set" exact="min" mutual="1"/> <relation race="atf" operation="set" exact="{lookup.notoriety@notop2}"/> <relation race="terran" operation="set" exact="friend" mutual="1"/> <relation race="yaki" operation="set" exact="min" mutual="1"/> </notoriety> <equipment> <ware typename="SS_SHIELD_A" exact="3"/> <ware typename="SS_WARE_TECH231" exact="1" comment="SETA"/> <ware typename="SS_WARE_TECH277" exact="1" comment="Handelscomputererweiterung"/> <ware typename="SS_WARE_SCANNER2" exact="1" comment="Duplex Scanner"/> </equipment> <map> <sector x="1" y="3" comment="Argon Prime"/> <sector x="0" y="0" comment="Kingdoms End"/> <sector x="10" y="8" comment="Ianamus Zura"/> </map> <property> <ship typename="SS_SH_SRS_TSSF" comment="Baldric Superfrachter"> <equipment> <ware typename="SS_SHIELD_D" exact="1"/> <ware typename="SS_WARE_TECH231" exact="1" comment="SETA"/> </equipment> </ship> <ship typename="SS_SH_SRS_MTS" comment="Orinoko Prototyp"> <equipment> <ware typename="SS_SHIELD_D" exact="20"/> <ware typename="SS_LASER_ESR" exact="6" comment="Ionenplasma-Schnellfeuergeschuetz"/> <ware typename="SS_LASER_REPAIR" exact="2"/> <ware typename="SS_LASER_FLAK_ALPHA" exact="24" comment="Flakartillerie"/> <ware typename="SS_WARE_TECH231" exact="1" comment="SETA"/> </equipment> </ship> </property> </reward_player> <set_value name="ATF Notoriety" exact="{lookup.notoriety@notop2}"/> <set_value name="Terran Link Plot" exact="1"/> <set_value name="HUB Plot" exact="1"/> <set_value name="HQ Plot" exact="1"/> </do_when>
Wenn die nächste Zeile dannlautet sind wir dann auch mit dieser Datei fertig.Code: Select all
<do_when value="{player.gamestart}" exact="-1" comment="Custom">
Nächste Datei:
L/true/gamestarts.xml
Die ist wesentlich übersichtlicher. Auch hier suchen wir wieder nach unserem Paranidenkumpel und kopieren alles zwischen <gamestart... und </gamestart>. ID ändern! Das fummeln hier ist ein wenig schwieriger wegen den geschweiften Klammern. Im Zweifelsfalle folgendes einfügen:Damit startet man dann als Anonymer Argone in einem Discoverer Auflärer (Zeile <ship typename="SS_SH_A_M5_1"/>) in einem der fünf angegebenen Sektoren (Montalaar, Ödland, Hafen der Königin, Dunkle Wasser, Getsu Fune). Erneut KEINE UMLAUTE. Da alles zwischen <!-- und--> Kommentar ist, kann man sich hier frei austoben.Code: Select all
<!-- Argon Explorer--> <gamestart id="3001" name="{1900,318}" description="{1900,1007}" difficulty="{1900,2202}" image="start05" plot="1"> <player name="{1900,1103}" species="{1900,2404}" gender="{1900,2504}" age="{1900,2611}"/> <sectors> <!-- Montalaar --> <sector x="7" y="8"/> <!-- Wastelands --> <sector x="16" y="7"/> <!-- Queen's Harbour --> <sector x="17" y="15"/> <!-- Dark Waters --> <sector x="1" y="13"/> <!-- Getsu Fune --> <sector x="17" y="1"/> </sectors> <ship typename="SS_SH_A_M5_1"/> </gamestart>
Der Text der vom Spiel in die geschweiften Klammern eingefügt wird findet man in t/0001-L049.xml, dort nach folgenden Texten suchen:
page id="301900"
page id="351900"
in den nachfolgenden
t id="...."
findet man den gewünschten Text.
Speichern und schließen.
X3TC starten, man sollte nun ganz unten in den Spielstarts seinen eigenen finden. Das das ganze zu einem ***modified***-Spiel führt, sollte klar sein.![]()
Malte