Leeres Universum modden

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
LaT3St
Posts: 29
Joined: Sat, 9. Apr 11, 19:48
x4

Leeres Universum modden

Post by LaT3St » Mon, 13. Jun 22, 01:34

Hallo zusammen,

ich versuche aktuell zu Debugzwecken ein völlig leeres Universum zu generieren. Ich habe dazu die Gamefiles entpackt und die "inituniverse.xml" in eine eigene Mod überführt, in der Hoffnung, dass das Original von meiner Mod überschrieben wird. Das hat leider nicht funktioniert.
Außerdem benötige ich eine Möglichkeit einzelne Schiffe im Spiel auf Knopfdruck zu spawnen.

Eigentlich benötige ich einfach etwas vergleichbares wie den alten Galaxyeditor aus X3...

Gibt es sowas eventuell schon?

Gruß
LaT3St

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

Re: Leeres Universum modden

Post by Marvin Martian » Thu, 16. Jun 22, 14:33

orientiere dich doch an den originalen Tutorials - dabei wird ja auch ein eigenes Universum erstellt

LaT3St
Posts: 29
Joined: Sat, 9. Apr 11, 19:48
x4

Re: Leeres Universum modden

Post by LaT3St » Fri, 17. Jun 22, 01:51

Darf man fragen wo diese zu finden sind?

Ich finde nur den Index für diverse Tools und Tipps im englischen Bereich und Google brachte mich nicht weiter.

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

Re: Leeres Universum modden

Post by Marvin Martian » Fri, 17. Jun 22, 18:19

Ich meinte keine Tuts zum ansehen, sondern wie Egosoft das in X4 gemacht hat mit den im vergleich zum normalen Spieleuniversum stark abweichenden Uni für den Konstruktionsstart bzw eben Tutorial Gamestarts

Die Starts findest du in \libraries\gamestarts.xml die Universen in \maps , wenn du das Game entpackt hat

User avatar
Casishur
Posts: 1649
Joined: Fri, 1. Jul 05, 10:04
x4

Re: Leeres Universum modden

Post by Casishur » Fri, 17. Jun 22, 19:10

Marvin Martian wrote:
Fri, 17. Jun 22, 18:19
Ich meinte keine Tuts zum ansehen, sondern wie Egosoft das in X4 gemacht hat mit den im vergleich zum normalen Spieleuniversum stark abweichenden Uni für den Konstruktionsstart bzw eben Tutorial Gamestarts

Die Starts findest du in \libraries\gamestarts.xml die Universen in \maps , wenn du das Game entpackt hat
Klingt interessant . Da mich die neuen sektor cluster habgier und windfall jedes mal desorientiren, habe ich eh vor sie umzusetzen

Aber so ganz schlau werde ich aus den Koordinaten nicht schlau, da ich mit sowas wie X=1000e+8e9a1 nichts anfangen kann.

Wollte die sektoren weiter unterhalb von Fehlerhafte Logik platzieren. Aber die Verknüpfungen ( Tor Verbindung ) beibehalten oder müssen sie ebenfalls geändert werden.
CPU Typ Ryzen 9 3900x
Grafikkarte Radeon RX 6600 XT 8GB
Arbeitsspeicher: Corsair Vengeance LPX 32GB (2 x 16 GB) DDR4 3200MHz
Motherboard Name/Typ MSI B550 Gaming Plus
Win 10 64 bit

Betty : Autopilot.... hat.... total Versagt.

Twitch https://www.twitch.tv/Casishur

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

Re: Leeres Universum modden

Post by Marvin Martian » Fri, 17. Jun 22, 19:35

Ich weiß nicht wie die Karte die Positionen genau bestimmt, IMO vermutlich anhand der Position des Clusters - wie die "Sicherheitsabstände" sind damit nichts überlappt usw ?? (theoretisch kann man ja vielleicht auch in der Höhe (Y) arbeiten und

am besten siehst du dir wohl mal die Positionen in der Galaxy.xml an
dann würde ich zwei Objekte die vorhanden sind und vom Abstand passen analysieren, sprich wie viel +/- bei x,y,z zwischen ihnen liegen und das auf die Wunschposition ausgehend vom neuen Nachbarn dann auf die Cluster übertragen

Wenns klappt gut, wenn nicht .... :gruebel:

User avatar
Casishur
Posts: 1649
Joined: Fri, 1. Jul 05, 10:04
x4

Re: Leeres Universum modden

Post by Casishur » Fri, 17. Jun 22, 20:15

Auszug aus der demo_clusters.xml

Code: Select all

<macros>
  <macro name="demo_Cluster_13_macro" class="cluster">
    <component ref="standardcluster" />
    <connections>
      <connection name="demo_Cluster_13_Sector001_connection" ref="sectors">
        <macro ref="demo_Cluster_13_Sector001_macro" connection="cluster" />
      </connection>
      <connection name="demo_C13S01_Region001_connection" ref="regions">
        <macro name="demo_C13S01_Region001_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="region_cluster_13_sector_001" />
          </properties>
        </macro>
      </connection>
      <connection name="demo_C13S01_Region002_connection" ref="regions">
        <macro name="demo_C13S01_Region002_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="audioregion_cluster_13_sector_001" />
          </properties>
        </macro>
      </connection>
      <connection name="demo_C13S01_Region003_connection" ref="regions">
        <macro name="demo_C13S01_Region003_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="region_highyield_ore" />
          </properties>
        </macro>
      </connection>
      <connection ref="content">
        <macro>
          <component connection="space" ref="Cluster_01" />
        </macro>
      </connection>
    </connections>
  </macro>
  <macro name="demo_Cluster_40_macro" class="cluster">
    <component ref="standardcluster" />
    <connections>
      <connection name="demo_Cluster_40_Sector001_connection" ref="sectors">
        <macro ref="demo_Cluster_40_Sector001_macro" connection="cluster" />
      </connection>
      <connection name="demo_C40S01_Region001_connection" ref="regions">
        <offset>
          <position x="0" y="-8000" z="0" />
        </offset>
        <macro name="demo_C40S01_Region001_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="demo_region_cluster_40_sector_001" />
          </properties>
        </macro>
      </connection>
      <connection name="demo_C40S01_Region01_connection" ref="regions">
        <macro name="demo_C40S01_Region01_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="audioregion_cluster_40_sector_001" />
          </properties>
        </macro>
      </connection>
      <connection ref="content">
        <macro>
          <component connection="space" ref="Cluster_23" />
        </macro>
      </connection>
    </connections>
  </macro>
  <macro name="demo_Cluster_41_macro" class="cluster">
    <component ref="standardcluster" />
    <connections>
      <connection name="demo_Cluster_41_Sector001_connection" ref="sectors">
        <macro ref="demo_Cluster_41_Sector001_macro" connection="cluster" />
      </connection>
      <connection name="demo_C41S01_Region001_connection" ref="regions">
        <offset>
          <position x="0" y="-18000" z="0" />
        </offset>
        <macro name="demo_C41S01_Region001_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="region_cluster_41_sector_001" />
          </properties>
        </macro>
      </connection>
      <connection name="demo_C41S01_Region002_connection" ref="regions">
        <macro name="demo_C41S01_Region002_macro">
          <component connection="cluster" ref="standardregion" />
          <properties>
            <region ref="audioregion_cluster_41_sector_001" />
          </properties>
        </macro>
      </connection>
      <connection ref="content">
        <macro>
          <component connection="space" ref="Cluster_35" />
        </macro>
      </connection>
    </connections>
  </macro>
</macros>

also wenn ich das richtig sehe ist ein cluster y=-8000 vom Zentrum entfent und der andere =-18000 also sind es ca 5000 (leider keine metrischen angaben) schätze aber es sind angaben in Kilometer km
Aber ein Cluster hat keine koordinaten :gruebel:
CPU Typ Ryzen 9 3900x
Grafikkarte Radeon RX 6600 XT 8GB
Arbeitsspeicher: Corsair Vengeance LPX 32GB (2 x 16 GB) DDR4 3200MHz
Motherboard Name/Typ MSI B550 Gaming Plus
Win 10 64 bit

Betty : Autopilot.... hat.... total Versagt.

Twitch https://www.twitch.tv/Casishur

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

Re: Leeres Universum modden

Post by Marvin Martian » Sat, 18. Jun 22, 09:23

eigentlich sind es Meter

außerdem musst du in \maps\demo_universe\demo_galaxy.xml und nicht "clusters" nachsehen, in Cluster steht vermutlich alles zum Cluster, also Planten-, Regionen- und die Sektorpositionen
und keine Position ist im Zweifelsfall einfach 0,0,0

Du verschickst einen Brief ja auch nicht mit der Positionsbeschreibung des Klingelschildes als Adresse

User avatar
Casishur
Posts: 1649
Joined: Fri, 1. Jul 05, 10:04
x4

Re: Leeres Universum modden

Post by Casishur » Sat, 18. Jun 22, 12:32

Habe ich gestern abend bzw heute in der früh auch bemerkt, dass die Positiions Bestimmungen in der galaxy.xml zu finden sind und wollte noch den beitrag dahingehend editieren :D

Hier muss man ebenfalls mit extrem großen zahlen jonglieren, die teilweise in die Trilliarden gehen können. Deswegen können auch dieses Zahlen wie 1e+10 vorkommen , was 10000000000 entspricht.

Wem solche Zahlen vorkommen und nicht weis wie man sie umrechnet, hier
Gib es die Lösung https://calculator.name/scientific-nota ... imal/1e-10


Heuten werden die Sektoren Habgier sowie Windfall nach Süden umziehen und zwar unterhalb von Fehlerhafte Logic. Die Sektoren knubbeltn sich nämlich an der jetzigen stelle und machen das Universum unübersichtlich :)

*edit nach den ersten rumtesten, ist mir aufgefallen, das ich für die Sektor Hexagone Absolute Koordinaten benötige, da ansonsten der Cluster Sektor im inneren etwas Deplatziert ist, was man hier schön sehen kann
Image

Edit 2
Es gibt 4 Coordinaten für die Hexagone , damit sie in die dafür vorgegebenen Hexagone passen und nicht deplatziert sind.

Cluster_01_connection ist Grand Exchange und hat keine Coodinaten X="0" Y="0"

17320000 m vertikale Hexagone Z-Achse
8660000 m versetzte Vertikale Hexagone Z-Achse

30000000 m Horizontale Ebene X-Achse
15000000 m versetzte Horizontale Ebene X-Achse

am besten ist es, wenn man die werte Multipliziert, um auf die Koordinaten zu kommen

Hier habe ich
den wert -60000000 (was 2 mal 30000000) auf der Horizontalen ist
der wert -103920000 wurde errechnet mit 17320000 mal 6 (lasst auch nicht durch die Minus Zeichen irritieren :)

So weit so gut. nun muss ich die noch in ein replace patch verpacken und schon sind sie umgezogen (zurzeit läuft das über -prefersinglefiles)

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
  <add sel="/macros/macro[@name='XU_EP2_universe_macro']/connections">
    <connection name="Cluster_500_connection" ref="clusters">
      <offset> 
        <position x="-60000000" y="0" z="-103920000" />
      </offset>
      <macro ref="Cluster_500_macro" connection="galaxy" />
    </connection>
    <connection name="Cluster_501_connection" ref="clusters">
      <offset>
        <position x="-60000000" y="0" z="-121240000" />
      </offset>
      <macro ref="Cluster_501_macro" connection="galaxy" />
    </connection>
    <connection name="Cluster_502_connection" ref="clusters">
      <offset>
        <!-- x="30000000" z="-8660000" -->
        <position x="-60000000" y="0" z="-138560000" />
      </offset>
      <macro ref="Cluster_502_macro" connection="galaxy" />
    </connection>
    <connection name="Cluster_503_connection" ref="clusters">
      <offset>
        <position x="-60000000" y="0" z="-155880000" />
      </offset>
      <macro ref="Cluster_503_macro" connection="galaxy" />
    </connection>
    <connection name="Cluster_504_connection" ref="clusters">
      <offset>
        <position x="-60000000" y="0" z="-173200000" />
      </offset>
      <macro ref="Cluster_504_macro" connection="galaxy" />
    </connection>
    <connection name="ClusterGate501To502" ref="destination" path="../Cluster_501_connection/Cluster_501_Sector001_connection/Zone003_Cluster_501_Sector001_connection/connection_ClusterGate501To502">
      <macro connection="destination" path="../../../../../Cluster_502_connection/Cluster_502_Sector001_connection/Zone002_Cluster_502_Sector001_connection/connection_ClusterGate502To501" />
    </connection>
    <connection name="ClusterGate502To503" ref="destination" path="../Cluster_502_connection/Cluster_502_Sector001_connection/Zone005_Cluster_502_Sector001_connection/connection_ClusterGate502To503">
      <macro connection="destination" path="../../../../../Cluster_503_connection/Cluster_503_Sector001_connection/Zone002_Cluster_503_Sector001_connection/connection_ClusterGate503To502" />
    </connection>
   <connection name="ClusterGate502To500" ref="destination" path="../Cluster_502_connection/Cluster_502_Sector001_connection/Zone004_Cluster_502_Sector001_connection/connection_ClusterGate502To500">
      <macro connection="destination" path="../../../../../Cluster_500_connection/Cluster_500_Sector003_connection/Zone001_Cluster_500_Sector003_connection/connection_ClusterGate500To502" />
    </connection>

    <connection name="ClusterGate501To008" ref="destination" path="../Cluster_501_connection/Cluster_501_Sector001_connection/Zone002_Cluster_501_Sector001_connection/connection_ClusterGate501To008">
      <macro connection="destination" path="../../../../../Cluster_08_connection/Cluster_08_Sector001_connection/Zone006_Cluster_08_Sector001_connection/connection_ClusterGate008To501" />
    </connection>
    <connection name="ClusterGate501To002" ref="destination" path="../Cluster_501_connection/Cluster_501_Sector001_connection/Zone004_Cluster_501_Sector001_connection/connection_ClusterGate501To002">
      <macro connection="destination" path="../../../../../Cluster_02_connection/Cluster_02_Sector001_connection/Zone004_Cluster_02_Sector001_connection/connection_ClusterGate002To501" />
    </connection>
    <connection name="ClusterGate503To006" ref="destination" path="../Cluster_503_connection/Cluster_503_Sector001_connection/Zone005_Cluster_503_Sector001_connection/connection_ClusterGate503To006">
      <macro connection="destination" path="../../../../../Cluster_06_connection/Cluster_06_Sector001_connection/Zone004_Cluster_06_Sector001_connection/connection_ClusterGate006To503" />
    </connection>
  </add>
</diff>
Image


kann sich sehen lassen. Die routen, die quer durch den ein oder anderen Sektor gehen stören mich nicht, da ich solche routen bereits aus Eve kenne. Das Bild ist als link, weil es ein screenshot ist (größer als 800x600)
https://g3ce.net/public/x4/screenshots/umgezogen.jpg


der patch string zum selber machen :-) für die coodinaten (ohne root/Foo/etc)

Code: Select all

  
  <diff>
  <replace sel="//macros/macro[@name='XU_EP2_universe_macro']/connections/connection[@name='Cluster_500_connection']/offset">
  <offset>
    <position x="-60000000" y="0" z="-103920000" />
  </offset>
    </replace>
  <replace sel="//macros/macro[@name='XU_EP2_universe_macro']/connections/connection[@name='Cluster_501_connection']/offset">
    <offset>
      <position x="-45000000" y="0" z="-95260000" />
    </offset>
  </replace>
  <replace sel="//macros/macro[@name='XU_EP2_universe_macro']/connections/connection[@name='Cluster_502_connection']/offset">
    <offset>
      <position x="-60000000" y="0" z="-138560000" />
    </offset>
  </replace>
  <replace sel="//macros/macro[@name='XU_EP2_universe_macro']/connections/connection[@name='Cluster_503_connection']/offset">
    <offset>
      <position x="-45000000" y="0" z="-147220000" />
    </offset>
  </replace>
  <replace sel="//macros/macro[@name='XU_EP2_universe_macro']/connections/connection[@name='Cluster_504_connection']/offset">
    <offset>
      <position x="-60000000" y="0" z="-173200000" />
    </offset>
  </replace>
 </diff>
etc..
CPU Typ Ryzen 9 3900x
Grafikkarte Radeon RX 6600 XT 8GB
Arbeitsspeicher: Corsair Vengeance LPX 32GB (2 x 16 GB) DDR4 3200MHz
Motherboard Name/Typ MSI B550 Gaming Plus
Win 10 64 bit

Betty : Autopilot.... hat.... total Versagt.

Twitch https://www.twitch.tv/Casishur

Post Reply

Return to “X4: Foundations - Scripts und Modding”