Teladi Handelsstation (Ringstation) lässt sich übernehmen - Guide jetzt Online

Hier ist der ideale Ort um über Scripts und Mods für X4: Foundations zu diskutieren.

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

Post Reply
Capt. Bligh
Posts: 15
Joined: Wed, 4. Mar 20, 21:43
x4

Teladi Handelsstation (Ringstation) lässt sich übernehmen - Guide jetzt Online

Post by Capt. Bligh » Fri, 12. Mar 21, 02:48

Der Traum. Eine eigene Ringstation die ohne Probleme funktioniert. Lange probiert bis alle id's richtig verknüpft waren, aber jetzt ist sie endlich mein. :)

https://i.ibb.co/92Q66tG/X4-2021-03-12-02-19-15.png
https://i.ibb.co/6JQ4W5d/X4-2021-03-12-02-18-48.png
https://i.ibb.co/HNWMG48/X4-2021-03-12-02-22-01.png
https://i.ibb.co/n0YVGfG/X4-2021-03-12-02-23-19.png
https://i.ibb.co/VjNV562/X4-2021-03-12-02-25-44.png

moved to GER forum. E.
Last edited by Capt. Bligh on Sun, 18. Apr 21, 10:53, edited 2 times in total.

User avatar
Kabalake
Posts: 61
Joined: Wed, 19. Sep 18, 16:37
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Kabalake » Sat, 13. Mar 21, 23:31

Mega Geil

User avatar
ehtschu
Posts: 145
Joined: Sat, 4. Feb 06, 23:08
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by ehtschu » Tue, 23. Mar 21, 23:06

und wie? gibts na anleitung?

Vali_Lutzifer
Posts: 46
Joined: Thu, 18. Mar 21, 03:25

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Vali_Lutzifer » Thu, 25. Mar 21, 23:10

Nicht schlecht ist bestimmt ein Mod oder ?

Vali_Lutzifer
Posts: 46
Joined: Thu, 18. Mar 21, 03:25

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Vali_Lutzifer » Mon, 29. Mar 21, 01:05

Hat keiner ne antwort woher man es bekommt ?

Uwe Poppel
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 3034
Joined: Sun, 4. Sep 05, 03:03
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Uwe Poppel » Tue, 30. Mar 21, 07:29

Vali_Lutzifer wrote:
Mon, 29. Mar 21, 01:05
Hat keiner ne antwort woher man es bekommt ?
Die Bauteile sind alle im Vanilla-Spiel vorhanden, in der Enziklopäpie sind alle Bauteile aufgeführt.

User avatar
Marvin Martian
Posts: 3545
Joined: Sun, 8. Apr 12, 09:40
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Marvin Martian » Sat, 3. Apr 21, 09:41

Er hat das entweder im Baumenü so zusammengestellt und die Teile verfügbar gemacht, oder eine existente Station übernommen

Ich würde vermutlich eine der Stationen per Skript dem Spieler überschreiben und den Bauplan sichern bevor ich das selbst zusammenpuzzle
Alternativ einfach eine Station per skript spawnen

Uwe Poppel
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 3034
Joined: Sun, 4. Sep 05, 03:03
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Uwe Poppel » Sat, 3. Apr 21, 11:54

Capt. Bligh wrote:
Fri, 12. Mar 21, 02:48
Der Traum. Eine eigene Ringstation die ohne Probleme funktioniert. Lange probiert bis alle id's richtig verknüpft waren, aber jetzt ist sie endlich mein. :)
...
Vielleicht könnte der Threadersteller die hier im Script- & Modding-Forum (!) entstandenen Fragen beantworten... :gruebel: :roll:

User avatar
Marvin Martian
Posts: 3545
Joined: Sun, 8. Apr 12, 09:40
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Marvin Martian » Sat, 3. Apr 21, 16:00

Wie man am fusse des Eingangsposts sieht, hat ein Mod das nur hier rein verschoben :wink:

Capt. Bligh
Posts: 15
Joined: Wed, 4. Mar 20, 21:43
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen

Post by Capt. Bligh » Sun, 18. Apr 21, 10:20

Sorry für meine verspätete Antwort. Bin nicht so der Schreiber, jetzt habe ich mich aber aufgerafft.

Vorneweg.
Die TEL Ringstationen sind spezielle, direkt mit den Teladi verbundene Stationen. Einfach den owner="teladi" Eintrag auswechseln reicht nicht und nur eine hat keine Verknüpfung mit dem TEL-Repräsentanten.
Jede sichtbare Station besteht eigentlich aus 2 Stationen. Die eigentliche Station und das Building-Storage, welche miteinander verknüpft sind. Diese Verknüpfungen müssen exakt stimmen, sonst funktioniert die Station nicht richtig. Alle hier sichtbaren ID's stimmen nicht mit euren überein, da sie ständig neu durchnummeriert werden. Deshalb genau unterscheiden zwischen Codes XYZ-000 (bleiben gleich in der aktuellen "Zeitlinie") und ID's [0x23d98] (werden immer wieder neu durchnummeriert).
Das Save zum Einfügen sollte nicht zu groß sein, der Suchvorgang kann analog zur Rechnerleistung sonst nerven.

Voraussetzung: Man benötigt ein Savegame, das nicht aus der "Zeitlinie" des Aktuellen Savegames ist, sonst kann es zu doppelten ID's kommen. Man kann auch kurz ein neues Spiel starten, die Tel.-Hst. werden gleich beim Spielstart erzeugt.
Das alte Save einmal laden um den Stations-Code der Tel.Hst. in Profit. Handel III auszulesen. Speichern wenn kein Schiff angedockt ist.
1. Eine kleine Station am gewünschten Platz fertig bauen. Das Konstruktionsschiff sollte sich entfernt haben. Pier, Dock, kleines Lager und 1 Produktionsmodul (z.Bsp. Energie) reicht.
Die Baubox etwas anheben und drehen, damit ein Rotations- und Höhenwert erzeugt wird.
2. Manager einteilen, Namen vergeben, auf Station landen und 1x zum Händler gehen, damit die Händler-ID an allen Docks erzeugt wird.
3. Stationscode notieren (hier als XYZ-000 bezeichnet) + Stationscode der Handelsstation in Profitabler Handel III im alten Savegame. Hewas Zwilling und Ianamus Zura sind Stationen mit Einträgen für den TEL-Repräsentanten bzw. Platzhalter für Diesen und somit nicht geeignet.
4. Speichern wenn an der Platzhalter- Stationen niemand angedockt ist. Backup des Savegames versteht sich von selbst.
5. Savegame mit Notepad++ (ist Freeware) o.ä. öffnen, Win-Notepad ist absolut ungeeignet.
6. Station XYZ-000 suchen und in neue Datei ausschneiden/extrahieren. Eintrag beginnt mit:

<connection connection="stations">
<component class="station" macro="station_gen_factory_base_01_macro" connection="space" name="Euer vergebener Name" code="XYZ-000" owner="player"...

Nur die obige Kopfzeile mit dem Stationscode im originalen Save nicht löschen, die Stelle muß man später wieder finden können.

7. Im alten Save Teladi HSt. suchen und die kpl. Station in eine neue Datei kopieren. Eintrag beginnt mit:

<connection connection="stations">
<component class="station" macro="landmarks_tel_tradestation_01_macro" connection="space"

Erst in Ruhe das genaue Ende des Stationseintrags lokalisieren (der nächste Eintrag muß nicht zwingend eine Station sein) das heißt ca. 5500 Zeilen scrollen :-) den Eintrag des nächsten Objekts notieren und dann mit Bearbeiten >Auswahl beginnen / Auswahl beenden markieren und in neue Datei extrahieren.

Jetzt kann es losgehen, keine Hektik und schnellen Klicks, einmal ID verwechselt oder ein Zeichen vergessen bzw. nicht genau gleich ersetzt und alles war umsonst. Ihr müßt ja meine Fehler nicht wiederholen :-)

8. Code der Handelsstation in der Kofzeile mit dem neuen Code austauschen (XYZ-000)

- ID der Handelsstation am Ende der Kopfzeile mit ID von XYZ-000 >alle ersetzen
- Manager, Defence, Engineer, Händler (Händler ID ist der Eintrag >killed tempcomponentremoved<) >alle ersetzen

Die ID's sind hier
<listener listener="[0xa4baaa]" event="killed"/>
<listener listener="[0xa4baa6]" event="killed"/>
<listener listener="[0xa4718a]" event="killed"/>
<listener listener="[0xa4baab]" event="killed"/>
<listener listener="[0xa47109]" event="killed"/>
<listener listener="[0x2eb0c4]" event="killed tempcomponentremoved"/>

und über den Eintrag

<post id="shiptrader"/>
<post id="shadyguy"/>
<post id="manager" component="[0xa4baab]"/>
<post id="defence" component="[0xa4baa6]"/>
<post id="trainee_individual"/>
<post id="tradeagent"/>
<post id="engineer" component="[0xa4baaa]"/>

kann man das zuordnen.

owner="teladi" mit owner="player" >alle ersetzen.

<render>
<parameter value="xxxxxxx" name="diffuse_map" type="texture"/>
</render>

Zeilen in Tel-Hst kpl. mit Zeile aus XYZ-000 >alle ersetzen.

-Nach <source entry="ringstation_ suchen und die ganze Zeile löschen.

Sieht so aus, die Ringstationen sind mit ringstation_01 bis _03 Nummeriert und mit den Teladi verknüpft:

<source entry="ringstation_03" seed="8173840329254012701" class="godstation"/>

9. Tel.-Hst den Eintrag </economylog> suchen und nachfolgend den fehlenden Account (<account id=) aus XYZ-000 einfügen.
Zeile <snapshot time= ersetzen.
vorher:
<buy ware="siliconwafers" price="41900"/>
</economylog>
<snapshot time="2137230.798" fixed="1">
<entry id="[0x2cc30]" index="1" macro="landmarks_tel_tradestation_01_dockarea_m_01_macro" fixed="1">

nachher:
<buy ware="siliconwafers" price="41900"/>
</economylog>
<account id="[0x1f9]" own="1"/>
<snapshot time="2137230.798" fixed="1">

<entry id="[0x2cc30]" index="1" macro="landmarks_tel_tradestation_01_dockarea_m_01_macro" fixed="1">

10. Den Eintrag in Tel-Hst

<connection connection="buildingmodule" id="[0xa4ba68]">
<connected connection="[0xa471d6]"/>

mit den entsprechenden 2 Zeilen aus XYZ-000 ersetzen.

11. Die Position der Tel-Hst mit der aus XYZ-000 ersetzen. Der Eintrag ist gleich am Anfang zu finden.

<listener listener="[0x2eb0c4]" event="killed tempcomponentremoved"/>
</listeners>
<events>
<event event="updatebuild" time="2149105.005"/>
<event event="updatetradeoffers" time="2149146.578"/>
</events>
<offset>
<position x="-2482.197" y="14432.851" z="-49837.285"/>
<rotation yaw="56.46479"/>

</offset>

Nur genau an dieser markierten Stelle die Position verändern, alle anderen Pos-Einträge sind für Module. Ich hatte auch schon eine Platzhalter-Station, bei der der Eintrag an dieser Stelle fehlte. Dafür habe ich aber keine Lösung gesucht.

<rotation yaw= ist die Drehung der Station und kann später jederzeit verändert werden. Bsp. <rotation yaw="78.40942"/> = nach links gedreht <rotation yaw="-78.40942"/> = nach rechts gedreht.
Der Eintrag ist auch für andere Stationen anwendbar, wenn z.Bsp. das Buildingstorage genau vor dem Pier liegt.

12. Den nachfolgenden Bereich in Tel-Hst mit exakt dem selben Bereich aus XYZ-000 ersetzen. Über die "defence" ID leicht zu lokalisieren

<connection connection="entities">
<component class="computer" macro="character_defence_computer_01_macro" connection="parentconnection" code="LJT-385" owner="player" known="1" read="0" id="[0xf965a14]">
<listeners>
<listener listener="[0x11154d0e]" event="killed"/>
</listeners>
<traits flags="remotecommable">
<skill type="morale" value="6"/>
</traits>
<entity type="officer" post="defence"/>
<blackboard>
<value name="$bombpositions" type="list" value="63026"/>
</blackboard>
</component>
</connection>
<connection connection="entities">
<component class="computer" macro="character_engineer_computer_01_macro" connection="parentconnection" code="JSH-375" owner="player" known="1" read="0" id="[0x1194d078]">
<listeners>
<listener listener="[0x11154d0e]" event="killed"/>
</listeners>
<traits flags="remotecommable">
<skill type="engineering" value="6"/>
<skill type="morale" value="6"/>
</traits>
<entity type="officer" post="engineer"/>
</component>
</connection>
<connection connection="entities">
<component class="npc" macro="character_yaki_female_cau_pilot_01_macro" connection="parentconnection" name="Jesmeen Lanner" code="JIJ-264" owner="player" known="1" read="0" page="10108" id="[0xc1173d3]">
<listeners>
<listener listener="[0x11154d0e]" event="killed"/>
</listeners>
<traits flags="remotecommable">
<skill type="boarding" value="7"/>
<skill type="engineering" value="1"/>
<skill type="management" value="15"/>
<skill type="morale" value="9"/>
<skill type="piloting" value="7"/>
</traits>
<entity type="officer" post="manager"/>
<blackboard>
<value name="$StateMachine" type="cue" value="535584"/>
<value name="$UpkeepMissions" type="list" value="80982"/>
</blackboard>
<npcseed seed="3959829235"/>

13. Jetzt den Bereich in Tel-Hst mit dem Bereich aus XYZ-000 ersetzen. Die beiden ID's ohne ersichtliche Zuordnung sind wichtig, diese sind verknüpft mit dem Buildinganchor/Buildingprozessor in der Ghost-Buildingstorage-Station.

<listener listener="[0xa4baaa]" event="killed"/>
<listener listener="[0xa4baa6]" event="killed"/>
<listener listener="[0xa4718a]" event="killed"/>
<listener listener="[0xa4baab]" event="killed"/>
<listener listener="[0xa47109]" event="killed"/>
<listener listener="[0x2eb0c4]" event="killed tempcomponentremoved"/>

Jetzt in eurem Savegame die neue Tel-Hst an der Stelle der originalen XYZ-000 Platzhalter-Kopfzeile einfügen, die originale Platzhalter-Kopfzeile dabei natürlich löschen.

Speichern und fertig. Wenn ihr alles richtig und exakt gemacht habt, seid ihr jetzt auch im Besitz einer Ringstation. Wenn etwas nicht stimmt, das Symbol fehlt, die Station unsichtbar ist, die Konten nicht funktionieren wurde etwas vergessen oder nicht richtig ersetzt. Ein falsches Zeichen reicht. Die extrahierte original Tel-Hst. könnt ihr speichern und nach einem Speicher-/Ladevorgang den Prozess wiederholen. 2 Ringstationen sind noch besser als eine :-)

Ich habe das aus dem Gedächtnis so exakt wie möglich aufgeschrieben. Für mögliche Gedächtnislücken übernehme ich keine Haftung und Schreibfehler könnt ihr gern behalten.
Viel Spaß. :P

Uwe Poppel
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 3034
Joined: Sun, 4. Sep 05, 03:03
x4

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen - Guide jetzt Online

Post by Uwe Poppel » Sun, 18. Apr 21, 12:57

Danke! Viel Arbeit, aber dafür sieht es Klasse aus. :wink:

wanderer
Posts: 278
Joined: Wed, 6. Nov 02, 20:31
x3tc

Re: Teladi Handelsstation (Ringstation) lässt sich übernehmen - Guide jetzt Online

Post by wanderer » Sun, 30. Jan 22, 19:23

So, hab mir nun auch eine gegönnt... :-)

...und noch ein paar Anmerkungen...
Generell - Backups nicht vergessen!
Capt. Bligh's Vorgehensweise lesen, und auch versuchen zu verstehen. Wer etwas unsicher ist, einfach probieren...

Wie Capt. Bligh bereits erwähnte, die Bearbeitung der XML ist zeitaufwendig, und ggf. auch etwas tricky.
Hierzu meine Vorgehensweise. Ich nutze Visual Studio Code Editor um die ersten Schritte durchzuführen.

Zuerst wurde ein neues angepasstes Spiel erstellt - OHNE AKTIVVE MODs!. Startsektor ist Proft. Handel III. Somit ist man bereits an der Teladi Handelsstation. Deren ID notieren - f. spätere Suche. Andocken, Händler aufsuchen, abdocken, speichern (kein anderes Schiff angedockt!) - wie beschrieben.
(Ohne Mods? - um ggf. Probleme mit z.B. Mod gegebenen Stationserweiterungen zu umgehen. Z.B. Räume, Händlereinst.,...)

Im eigentlichen Spiel die zu ersetzende Station bauen (auch deren ID notieren) - GRÖSSE beachten - also 20x20x20km - die Teladi TS ist größer. Wenn man die 'zwischen' andere Stationen 'quetschen' will, ...macht aber keinen Sinn, L/XL Schiffe sollen schl. auch andocken können ohne Verrenkungen zu fliegen... Ebensfalls erscheint die TS anschl. mit nach Süden ausgerichteter Einflugschneise, kann man wie beschrieben korrigieren.

Ans Eingemachte:
Im alten Spiel (d.h. das Spiel welches neu gestartet wurde, wo die orginal TS zu finden ist) die TS ausschneiden. Hierzu habe ich die Position wie beschrieben gesucht. Anschl. habe ich alle Zeilen darüber gelöscht. Danach sucht man nochmals (im verbleibenden XML) nach <connection connection="stations">. Ab dieser Zeile alles folgende löschen. Somit hat man nun einen eingegrenzen Bereich der die TS sein kann. Speichern als XML, öffnen mit z.B. IE. Wird nun eine korrekte XML Struktur angezeit mit nur eine Node - die der Station - so ist die TS erfolgreich ausgeschnitten! Wenn der IE einen Fehler anzeigt, so sagt er auch in welcher Zeile, diese ist dann im ausgeschnittenen XML die Zeile, an der (wie von Cpt. Bligh erwähnt) weitere NICHT zur TS gehörende Spielobjekte liegen. Auch diese ab dieser Zeile abschneiden, Test im IE wiederholen. Somit kann man bereis hier sicher sein, dass der XML TS Bereich korrekt ist.

(Backups!! der einzelnen Schritte sind von Vorteil!)
Dasselbe mit dem Spielstand in welche die TS integriert werden soll, also im aktuellen XML. Dabei noch ein Tipp - bei der ersten Suche im XML die Zeilennummer der Replace-Station Start Zeile notieren. Anschl. wie oben bei der TS beschrieben vorgehen. Nun hat man die ca. 2500Zeilen der Replacement Station als einzelnes XML. Die vorhergehende Zeilennummer (Startzeilennr.) um die Zeilenanzahl der Replacementstation erhöhnen - dies sollte die Zeilennummer der letzten Zeile der Replacement Station IM aktuellen Save...XML sein - dies prüfen. Somit hat man es später einfacher die Position im XML zu finden und durchzublättern.

Nun wie von Capt. Bligh beschrieben die Ersetzungen durchführen - diese werden im XML der org. TS (der aus dem neuen Spiel) durchgeführt. Die IDs beachten! Die Händer ID ist mehrfach vertreten, die Engineer und Defense 3x. Dem Ablauf folgen.
Tipp: Ich habe diese Ersetzungen über Suche-und-Ersetze im VSC durchgeführt.
Bei der Ersetzung des grossen Bereichs zur Defense und Engineering - hier hatte ich im Händlerbreich auch Waren - mitnehmen. Die letzte Zeile ist die NPC Zeile (npcseed - dort endet der Bereich)

Zusammenbau:
Hierzu Notepad++. Die Save...xml in welche die TS integriert werden soll, laden - das dauert ggf. etwas.
Nun zur Startzeilennummer springen (deshalb die vorherige Notierung). Ab hier markieren und scrollen, bis die letzte Zeile der Replacement Station erreicht ist (die 2. berechnete Zeilennummer). In diesen Bereich nun die überarbeitete TS einfügen. Das wars...

Spiel laden, wenn alles korrekt ist, erscheint die Station. Bei mir war Sie bereits mit einigen Waren gefüllt. Ich musste anschl. noch einen Manager zuweisen, sowie die Geldmittel. Meine Schiffe (Mules) habe die Station sofort angeflogen und gehandelt.
Tipp: spätere Stationen sollten schneller gehen - man hat ja nun bereits die ausgeschnittene TS.

Fragen an Capt. Bligh:
Was etwas ärgerlich ist, dass die TS nur sehr wenig Verteidigung und Drohnen (nur 145) hat.
Ebenso kann ich nichts drumrum bauen, bzw. die Bewaffnung ändern. Hier fehlen auch die Auswahllisten für Bewaffung in der Bauansicht (Blaupausen habe ich). Kann man dies ändern?
Konnte bisher im TS XML diesbezgl. nichts finden. Nun ja, ist ja eine Handelsstation und keine Festung...

Trotzdem - Ein schöne eigene Teladi Handelsstation

Stats:
450 Schiffe wie org., 145 Drohnen. M MK1 114x Plasma, L MK1 48x Plasma, M MK2 Schilde 57x, L MK2 Schilde 24x, KEINE Raketen, 81 100kMJ Hülle, 1.8M m² Universal Storage (alle Typen)

Post Reply

Return to “X4: Foundations - Scripts und Modding”