Größeres Lager für eine bestimmte Station, suche Hilfe

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

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Größeres Lager für eine bestimmte Station, suche Hilfe

Post by player1 » Thu, 17. Dec 15, 17:29

Hallo zusammen,

ich versuche gerade eine kleine Mod zu schreiben die das Container-Lager einer bestimmten Station durch ein neues XXL-Universallager ersetzt. Soweit hab ich dies auch schon hinbekommen mein Problem ist momentan allerdings das ich es nicht schaffe die Baukosten für das XXL Lager einzustellen. Momentan kann das Lager nur gebaut werden wenn ich Waffen hinzufüge da anonsten der Baubutton ausgegraut ist.

Leider bin ich nicht besonders gut im modden und steht gerade aufm Schlauch, hab mir zwar schon andere Mods angesehen die Stationen verändern aber irgendwie werd ich daraus nicht schlau.

Hab das ganze ich mal gezippt zum testen, als Spielstart "Indsutriemogul" auswählen dann ist man direkt vor der "Teststation". Der Architekt bietet nun statt einem Containerlager ein XXL Lager an.

Wäre nett wenn mir jemand weiterhelfen könnte :-)

http://cloud.directupload.net/1FpD

Hier mal meine Codes:

wares.xml

Code: Select all

  <diff>
	<add sel="/wares">
  <ware id="struct_XXLWarenhaus_Storage" name="struct_XXLWarenhaus_Storage" transport="container" size="part" volume="1" tags="part">
    <price min="1" average="1" max="1" />
    <production time="68" amount="1" method="default" name="{20206,501}">
      <primary>
        <ware ware="energycells" amount="86" />
        <ware ware="fusionreactor" amount="7" />
        <ware ware="reinforcedmetalplating" amount="35" />
      </primary>
    </production>
    <component ref="struct_XXLWarenhaus_Storage_macro" amount="1" />
  </ware>
    </add>
</diff>





struct_XXLWarenhaus_Storage_macro

Code: Select all

<macros>
  <macro name="struct_XXLWarenhaus_Storage_macro" class="storage">
    <component ref="struct_econ_prod_stor_container" />
    <properties>
      <identification name="XXL Lager" description="{20107,4602}" />
      <explosiondamage value="100000" />
      <hull max="2000000" />
      <effects>
        <explosion ref="explosion_station_01" />
        <sefx_hack_disabled ref="hack_deactivated_m" />
      </effects>
    </properties>
    <connections>
      <connection ref="connection_cargobay01">
        <macro ref="cargobay_XXLWarenhaus_macro" connection="StorageConnection" />
      </connection>
      <connection ref="connection_shieldgenerator01">
        <macro ref="shieldgenerator_size_m_mk2_macro" connection="connection_component" />
      </connection>
      <connection ref="connection_shieldgenerator02">
        <macro ref="shieldgenerator_size_m_mk2_macro" connection="connection_component" />
      </connection>
      <connection ref="connection_turret_medium01">
        <macro ref="turret_medium_pe_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_medium02">
        <macro ref="turret_medium_pe_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_medium03">
        <macro ref="turret_medium_pe_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_medium04">
        <macro ref="turret_medium_pe_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small01">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small02">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small03">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small04">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small05">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small06">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
      <connection ref="connection_turret_small07">
        <macro ref="turret_small_mg_macro" connection="connection_component01" />
      </connection>
    </connections>
  </macro>
</macros>
cargobay_XXLWarenhaus_macro

Code: Select all

<macros>
  <macro name="cargobay_XXLWarenhaus_macro" class="cargobay">
    <component ref="generic_cargobay" />
    <properties>
      <cargo max="200000000" tags="bulk container energy liquid" />
      <hull integrated="1" />
    </properties>
  </macro>
</macros> 
Pharma Station (struct_bt_ol_medical_supplies_macro)

Code: Select all

<diff>
<replace sel='/macros/macro/connections/connection[@ref="ConnectionFor_struct_econ_prod_stor_container_macro1"]'>
 <connection ref="ConnectionFor_struct_econ_prod_stor_container_macro1">
        <build mode="optional" group="storage" sequence="D" stage="1" tags="primary" />
        <macro ref="struct_XXLWarenhaus_Storage_macro" connection="space" />
      </connection>
  </replace>

</diff>
macros.xml

Code: Select all

<diff>
  <add sel="/index">
    <entry name="cargobay_XXLWarenhaus_macro" value="extensions\XXLWarenhaus\assets\props\storageModules\macros\cargobay_XXLWarenhaus_macro"/>
   <entry name="struct_XXLWarenhaus_Storage_macro" value="extensions\XXLWarenhaus\assets\structures\Economy\production\macros\struct_XXLWarenhaus_Storage_macro"/>
  </add>
</diff>

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

Post by UniTrader » Thu, 17. Dec 15, 17:48

spontan sehe ich da keinen offensichtlichen fehler (von der Definition der nötigen Waren bis zum anhängen an die Station ist alles vorhanden), ausser dass XR intern einige dinge zu kleinbuchstaben konvertiert (iirc z.B. Macronamen), und ich weiss nicht ob das konsistent erfolgt.. du könntest mal versuchen deine Objekt-IDs alle zu kleinbuchstaben abzuändern.. nur so ne idee, kA ob es zutrifft..
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 ;)

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Thu, 17. Dec 15, 18:01

Hallo UniTrader, vielen Dank für deine Antwort. Hab nun alles klein geschreiben und es läuft :-) Das es daran liegen könnte wär mir im Traum nicht eingefallen :wink:

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

Post by UniTrader » Thu, 17. Dec 15, 18:59

freut mich dass ich helfen konnte ;)
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 ;)

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sat, 9. Jan 16, 02:19

Hallo nochmal,

habe dank deiner Hilfe die kleine Mod zum laufen gebracht, es werden bei den Lagerhäusern die Lager ausgetauscht wie ich mir das vorgestellt hatte. Allerdings muss bei dem Mod die Installationsreihenfolge beachtet werden damit nicht auch bei einem neuen Spiel, bzw bei Release des DLCs die KI Stationen betroffen werden.
(Habe den Buildtree abgeändert)

Nun kam mir die Idee die Station einfach zu duplizieren und unter neuem Namen baubar (neuer Buildtree) zu machen, das würde generell die KI Station nicht mehr betreffen.
Jetzt die eigentliche Frage was passiert mit dem Savegame wenn jemand den Mod löscht, es ist ja im Save eine Station verankert die das Spiel nicht mehr kennt. (Also zumindest den Buildtree und die Lager+Cargobay) Bei den ausgetauschten Lagern der Orginal Station war das kein Problem da X-Rebirth einfach die Standart-Lager wiedereingesetzt hat, vermutlich da es den Buildtree kannte.

Kann das Save mit der "jetzt" unbekannten Station nicht mehr geladen werden, bringt er nur nen Error, bleibt die Station vorhanden und kann nicht mehr erweitert/repariert werden (mh die "Cargobay" kennt er dann ja auch nicht mehr, was sicher zu nem Problem führt), löscht sich das Ding, mit Anhängsel beim Starten aus dem Savegame oder bleibt einfach ein Stück Schrott im Weltraum über das nicht mehr funktioniert und nach einmaligem Error Bericht Ruhe gibt?

Wie gesagt modden ist leider nicht mein Fachgebiet :-)

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

Post by Marvin Martian » Sat, 9. Jan 16, 08:57

so trivial ist das nicht
wenn du ein Bauteil gegen ein Gemoddetes ersetzt wird das nur bei neu erstellten Objekten korrekt angelegt
per patch_macro(s) gibt es das original und das gemoddete zur gleichen Zeit, weil der Befehl dieses offenbar nicht mehr entfernt - dummer Weise kann man nicht einfach lager_org gegen lager_neu auf der gleichen Position tauschen, das lager_org wird dann nicht mehr korrekt platziert
(zumindest geht es mir bei den Dronebays so)

Bauteile oder Stationen die fehlen werden IMO selbsttätig von der Engine entfernt, problematisch wird es eher wenn du ein Macro mit einem anderen überschreibst und sich da parameter ändern, da stürzt dann das Game ab (hab ich schon durch als ich das Sturm URV modden wollte class.ship_s -> class.drone)

Was deine Station betrifft, ich würde dir raten eine neue Station anzulegen, als Mod musst du das einfach als im Savegame verankert machen

Wenn es um die Handelsstation geht, würde ich zudem anraten Universallager zu verwenden (einfach die 4 Arten Lager neu anlegen und jeweils für alle Warenklassen)
da man ja nun die Lagerwerte individuell einstellen kann erscheint mir das am flexibelsten

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sat, 9. Jan 16, 11:47

Hallo Marvin,

vielen Dank für deine Antwort.
Bei bereits bestehende Stationen möchte ich da Lager nicht ersetzten, mir ging es eher daraum das wenn jemand die Mod aktivert hatt ein ein neus Spiel beginnnt auch die KI Stationen von der Änderung betroffen werden oder werden diese nicht "neu erstellt" sondern einfach aus der Orginalkarte geladen?
Würde es gerne vermeiden das bei einem neuen Spiel die KI Lagerhäuser über den 25 Fachen Lagerplatz verfügen.

Das mit den Lagern hatte sich so umgesetzt wie du meintest, 4 mal ein die Standartlager "kopiert" und einer neuer Cargobay mit mehr Platz und allen Warenarten zugewiesen.

Das mit der neuen Station werde ich nun mal versuchen, wäre perfekt wenn die Engine die ihr nicht mehr bekannte Station dann einfach entfernt :-)

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

Post by Marvin Martian » Sat, 9. Jan 16, 12:10

das geht nur über ein gesondertes Stationsmacro

hat im Prinzip auch den Vorteil dass du eigene Handelswaren vorgeben kannst, da diese in trade.station.tradestations abhängig vom Macro vergeben werden
oder eben erstmal garkeine

außerdem könntest du dort auch die Bauschritte überarbeiten, gerade die Lager haben oft wenig Materialbedarf, da kann man IMO gleich alle einer Stufe zusammenfassen

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sat, 9. Jan 16, 13:16

Hallo, das mit der neuen Station hat gut funktioniert.
Wenn der Mod gelöscht wird und Save geladen wird überspringt das Game die Station, die Debugg console gibt zwar ein paar Fehler aus aber nichts was das Save nachhaltig beschädigen sollte. Die Station vorher mit dem Mod "Station Recycle or Destroy" zu entfernen ist aber noch sicherer.

Nun ist eigentlich alles wie ich es mir vorstelle, würde das gerne nun zum Testen veröffentlichen, nur leider fehlt mir die "buildmodule_stations_NEUER DLC_macro" da ich keinen HOL Beta Key erwischt habe. Aber was solls heists halt warten.

Spoiler
Show
Möchte die Station nur dem HOL Konstruktionsschiff zuweisen (damit das eigentliche "normale" Warenhaus nur in der HOL Beta getestet wird)
Danke nochmal für die Hilfen :-)

Cappy1401
Posts: 313
Joined: Sun, 27. Apr 08, 02:16
x4

Post by Cappy1401 » Sat, 9. Jan 16, 13:38

Zur Frage wegen der Änderung der KI Stationen.

Die KI-Stationen und die Stationen welche der Spieler bauen kann, unterscheinden sich nicht voneinander, da beide die selben Macros verwenden.
Die Stationen der KI werden also beim Start aus den Vorhandenen Macros erstellt.
Eine Änderung der vorhandenen Macros wirkt sich darum bei jedem Neustart auch auf die KI-Stationen aus.
Dies kannst Du nur verhindern, in dem Du deiner Station eigenständige Macros für den bau gibst.

Antwort zum Buildmodul von HOL

Du brauchst nur den Macronamen des Buildmoduls, sonst nichts.
Die Station kannst Du jeder Zeit mit einem diff-patch in das Buildmodul patchen, da sich der interne Aufbau des Macros, sicher nicht nicht von den anderen unterscheidet. :D

Gruß Cappy1401
Jedes Kriegsschiff, das unsere Werften verlässt, jedes abgefeuerte Geschütz bedeutet letztlich einen Diebstahl an denen, die sich nicht wehren können, nämlich an unseren Kindern. Eine Welt bewaffnet bis an die Zähne feuert nicht nur gebündelte Energie allein. Sie feuert auch oft genug die Hoffnung ihrer Kinder nutzlos in den Weltraum hinaus. Doch hin und wieder lässt man uns keine Wahl, dann jedoch besteht jede Salve aus der geballten Hoffnung das endlich wieder Frieden herrscht.

Der Amazone

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sat, 9. Jan 16, 13:46

Hallo Cappy1401,

der neuen Station hab ich ein eigenes Macro verpasst, funktioniert also ohne die KI Station zu beineinflussen. Das mit dem Buildmodul und dem diff-Patch ist ja relativ einfach, nur fehlt mir der genau Name der "buildmodule_stations_NEUER DLC_macro" :-).

Weis ja nicht wie Ego die benannte hatt, Argon, Hol, TC, Wurschtsalat_macro :lol:

Falls mir jemand den richtigen Namen posten könnte .... :roll:

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

Post by Marvin Martian » Sat, 9. Jan 16, 16:44

da die Bekannten
buildmodule_stations_albion_macro
buildmodule_stations_devries_macro
buildmodule_stations_omicron_macro
heißen würde ich auf _hol_ setzen

wenn du die Station aber nicht exclusiv für das HoL CV haben willst kannst du das ja irgendwann nachreichen und so lange auf die regulären Schiffe setzen

ich weiß eh nicht so genau ob das nicht in einer Fehlermeldung gipfelt wenn du eine nicht existente Datei patchen willst
und um das überhaupot zu tun, musst du zudem sicherstellen dass der DLC vor deiner Mod geladen wird, was du mit dependency in der content.xml erreichst

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sat, 9. Jan 16, 18:31

Hab mir mal ein Save aus dem Beta Forum gezogen welche laut Beschreibung ein HOL Konstruktionsschiff enthielt, beim Durchforsten habe ich jenes gefunden und es greift tatsächlich auf eine "buildmodule_stations_hol_macro" zu :-)

Habe auch die dependency nachgetragen, damit das ganze nur mit der HOL Veriante läuft.

Da es sich um eine abgeandelte Veriante des neuen HOL Lagerhauses handelt wollte ich den anderen CVs nicht die Möglichkeit des bauens einräumen. Bis jetzt hat Ego schließlich das Lagerhaus exclusiv im HOL DLC, wäre ja sonst so als würde man die Teladi Schiffe ins Grundspiel einpatchen, was nicht fair gegenüber Egosoft wäre.

Habe den Mod jetzt soweit fertig geschrieben, muss aber nochmal abgeändert werden sobald das Lagerhaus die fehlende Drohnenbucht erhält.

Evtl mag ja jemand mit HOL Beta kurz mal den Mod aktivieren und mir bescheid geben ob er läuft. Es sollte bei den HOL CVs nun zusätzlich eine XXL Warenhaus baubar sein.

http://www.file-upload.net/download-111 ... 8.rar.html

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

Post by Marvin Martian » Sun, 10. Jan 16, 08:53

funktioniert es denn bei den anderen CVs bei dir? (entsprechend umbenanntes Buildmodul)
ich bekomme da nämlich nichts angezeigt, kann jetzt aber auch den Fehler nicht sehen und das debuglog ist ebenfalls leer

mir ist nur aufgefallen dass du bei StorageModules/ unterschiedliche Schreibweisen verwendet hast, wobei das Windows nicht interessiert, für Linux ist es aber wohl tödlich

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sun, 10. Jan 16, 11:00

Mit den anderen CVs gings bei mir, hab die Schreibweise jetzt nochmal überarbeitet und an die Orginal Schreibweise (groß/kleinschreibung, oder meintest du was anderes?) angepasst.

Hab nun auch zum testen die Station zum Devries CV hinzugefügt (Abhängigkeit zum HOL DLC besteht weiterhin), evtl ist der interne Aufbau der HOL Buildmodule minimal anders.

Wegen dem Patchen einer nicht vorhanden Datei, da es das Orginal nicht gibt, und auch im macros.xml keine neue Datei eingetragen ist wird es anscheinend nicht beachtet, auch der Debugger spukt keinen Fehler aus.

http://www.file-upload.net/download-111 ... 1.rar.html

Cappy1401
Posts: 313
Joined: Sun, 27. Apr 08, 02:16
x4

Post by Cappy1401 » Sun, 10. Jan 16, 11:41

@Player1

Namen von Macros in Scripts immer vollständig klein schreiben, auch den Namen der Macro-Datei selbst.

also nicht

PL_lager_XYZ_macro

sondern immer

pl_lager_xyz_macro

Achte auch genau darauf, das die X-Path stimmen, wenn der Node an sich vorhanden ist, ist der Patch zwar erfolgreich, wird aber von der Engine ignoriert.
Es wird auch kein Fehler generiert, wenn der Eintrag dort an sich zulässig ist.

Ebenso müssen die Pfade in der macros.xml und components.xml korrekt sein.

wenn der richtige Pfad
extensions\beispiel\assets\structures\build_trees\macros\struct_bt_xyz_macro
ist.

Kannst Du nicht
extensions\Beispiel\Assets\Structures\build_trees\macros\struct_bt_xyz_macro
schreiben.
Weil dies unter Linux zu problemen führt, da Linux restriktiv auf groß und kleinschreibung achtet.

Wenn ich es auch richtig verstanden habe, dann spielt Marvin Martian die Linuxversion von XR.

Gruß Cappy1401
Jedes Kriegsschiff, das unsere Werften verlässt, jedes abgefeuerte Geschütz bedeutet letztlich einen Diebstahl an denen, die sich nicht wehren können, nämlich an unseren Kindern. Eine Welt bewaffnet bis an die Zähne feuert nicht nur gebündelte Energie allein. Sie feuert auch oft genug die Hoffnung ihrer Kinder nutzlos in den Weltraum hinaus. Doch hin und wieder lässt man uns keine Wahl, dann jedoch besteht jede Salve aus der geballten Hoffnung das endlich wieder Frieden herrscht.

Der Amazone

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

Post by Marvin Martian » Sun, 10. Jan 16, 12:38

Cappy1401 wrote:Wenn ich es auch richtig verstanden habe, dann spielt Marvin Martian die Linuxversion von XR.
nein, Windows, habs nur erwähnt weil es eben inzwischen von belang ist

@player1
im DV CV gehts, das HL verweigert nach wie vor

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sun, 10. Jan 16, 14:17

Danke euch beiden für die Hinweise mit den Pfaden, werde diese zukünftig per Paste und Copy einfügen damit mir diese Fehler nicht mehr passieren. Auch beim Grundpfad muss ich etwas besser darauf achten, da auch im Grundspiel manchmal groß oder kleingeschrieben wird.

\assets\structures\build_trees\Macros
\assets\structures\Economy\production\macros
\assets\props\SurfaceElements\Macros
\assets\props\StorageModules\macros

Warum sich das HOL CV aktuell weigert und das DV CV läuft ist mir momentan nicht ganz klar, da in beiden das selbe drinnen steht. Kann mir nur vorstellen das der innere Aufbau sich minimal unterscheidet oder es unter einem anderen Pfad untergebracht wurde. Aber das werd ich ja mit Release des DLCs sehen :)

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

Post by UniTrader » Sun, 10. Jan 16, 15:06

der DateiPfad ist in der tat anders, du müsstest vor die Macros noch
Extensions\ego_dlc_2\
hängen, also der Pfad in deiner Extension muss z.B. so lauten:
Extensions\ego_dlc_2\ext\assets\units\size_xl\macros\units_size_xl_builder_ship_hol_macro.xml
denn du veränderst quasi die Datei einer anderen Mod ;)
das trifft btw nur für die Macros zu, die component-Dateien werden von den Vanilla-Objekten genommen
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 ;)

player1
Posts: 395
Joined: Sat, 7. Feb 04, 19:01
x3tc

Post by player1 » Sun, 10. Jan 16, 15:37

Hatte das mal Testweise versucht mit einem Teladi (DLC) Schiff ohne einen anderen Pfad einzutragen, seltsamerweise hatte dies funktioniert.

\extensions\xxlwarenhaus\assets\units\size_xl\Macros\units_size_xl_te_kit_bulk_01_macro.xml

Werd aber nun versuche das mit dem erweiterten Pfad umzusetzten. Falls ich dich richtig verstanden haben müsste das nun lauten:

X Rebirth\extensions\xxlwarenhaus\extensions\ego_dlc_2\assets\props\SurfaceElements\Macros\buildmodule_stations_hol_macro.xml für dieses Modul das exclusiv im HOL DLC ist. Der Rest ist ja in Vanilla

http://www.file-upload.net/download-111 ... 2.rar.html


Danke euch aber nochmal für eure Hilfe, ohne euch wäre ich echt aufgeschmissen :roll:

Edit: Moment mit dem neuen Pfad hab ich nen Fehler gemacht, mein Kopf ist gerade zu voll, da muss ich nochmal nachdenken, bzw doch nicht falsch :?
Last edited by player1 on Sun, 10. Jan 16, 15:45, edited 2 times in total.

Return to “X Rebirth - Scripts und Modding”