Skripthilfe: Bräuchte mal Hilfe und Anregungen zu meinen Projekten

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

Post Reply
Phönix123
Posts: 10
Joined: Mon, 10. Dec 07, 13:37

Skripthilfe: Bräuchte mal Hilfe und Anregungen zu meinen Projekten

Post by Phönix123 » Wed, 22. Oct 14, 21:36

Tach zusammen! :)

Ich bräuchte mal ein wenig Unterstützung von Euch:

Rebirth ist (mittlerweile) sogar ein recht gelungenes Spiel wie ich finde. Dennoch sehe ich an der ein oder anderen Stelle noch Überarbeitungsbedarf, um das Spiel (noch besser) meinen Bedürfnissen anzupassen. :wink:

Zum einen möchte ich das Zeitlimit bei den generierten Missionen ausschalten. (Ich liebe tiefe und spiele solche Spiele eher wie RPG`s, versetze mich also in die Rolle eines Piloten im X Universum. Und da stört es irgendwie, innerhalb von zwei Minuten über die Stationen zu hetzen um Drogen zu beschaffen ...)

Zum anderen wäre es toll, wenn man mit der Skunk auch handeln könnte (Stationshandel). Ein kleinerer Laderaum sollte ja theorethisch vorhanden sein (nur praktisch ist ers leider nicht).

Ich habe also versucht, die Skripte entsprechend anzupassen, leider aber erfolglos.

Die xml`s, die meiner Meinung nach für ersteres Vorhaben bearbeitet werden müssten, wären md/GenericMissions.xml und für die einzelnen Missionen z.B. md/GM_Smuggle_Goods.xml. Dort gibt es auch Variablen für die Zeit, wie z.B.

Code: Select all

TimeoutMin
oder

Code: Select all

$MissionDuration
.

Für die $MissionDuration in der md/GM_Smuggle_Goods.xml habe ich zum Beispiel den Wert exact="$Path_Count*90s testweise auf "null" oder eine sehr hohe Zahl gesetzt:

Code: Select all

Code
</do_elseif>
              <set_value name="$MissionDuration" exact="null" />
            </do_if>
          </actions>
        </cue>
Leider haben Veränderungen der Werte keine Auswirkungen im Spiel ...

Für mein zweites Vorhaben könnte \assets\units\player\macros\unit_player_ship_macro.xml hilfreich sein. Hier habe ich die Datei mal um einen Laderaum eines m Containerfrachters ergänzt:

Code: Select all

Code
<connection ref="connection_storage01">
  <macro ref="storage_ship_m_container_01_macro" connection="ShipConnection" />
</connection>
Leider auch ohne Erfolg ...

Es funktioniert weder im "extensions" Ordner, noch als CAT und DAT Datei. Die veränderten Dateien werden aber vom Spiel angenommen, denn wenn ich sie mit leerem Inhalt speicher, läuft im Spiel nichts mehr. :wink:

Editiere ich die falschen Dateien? Welche kämen alternativ in Frage? Oder mache ich technisch irgend etws falsch? Zum editieren nutze ich den Notepad++ bzw. einen XML Editor.

Wär toll, wenn Ihr ein paar Tipps und Anregungen für mich hättet.

Danke! :)

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

Post by UniTrader » Wed, 22. Oct 14, 22:29

ist zwar noch nicht fertig, aber das sollte dir nen Anfang geben (insbesondere der part mit den diff-files, denn in XR werden Dateien nicht ersetzt um was zu bewirken ;) )
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 ;)

Phönix123
Posts: 10
Joined: Mon, 10. Dec 07, 13:37

Post by Phönix123 » Thu, 23. Oct 14, 10:25

Du meintest wohl den Hinweis auf Dein Modding Grundkurs: http://forum.egosoft.com/viewtopic.php?t=370503

:wink:

Danke! Der Hinweis mit den diff-files ist schonmal nützlich. Wäre auch zu einfach gewesen, wenn man die Dateien einfach hätte ersetzen können.
:wink:

Was das Ausschalten des Mission Timers betrifft, gibt es aber das Problem, dass die Knoten und Values nicht eindeutig identifizierbar sind. Es gibt viele "set_value" Knoten mit dem Wert exact="$Path_Count*90s".

Das Adressieren mit

Code: Select all

<replace sel='mdscript/cues/library/cues/cue/actions/do_if/set_value'
<set_value name="$MissionDurationx" exact="60m"/>
  </replace>
klappt also nicht, da es mehrere "cues" und mehrere "set_values" mit denselben Werten gibt.

Also habe ich mal versucht, jeden einzelnen Wert seperat zu adressieren:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
  <replace sel='//set_value[25]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[46]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[64]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[85]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
   <replace sel='//set_value[104]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[126]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[145]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[167]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
 </diff>
Leider funktioniert das auch nicht (die Dateien sind nun im extension Ordner, in einem seperaten Mod Verzeichnis).

Irgend welche Tipps?

Mein zweites Vorhaben, der Skunk einen Laderaum zu geben war auch noch nicht erfolgreich. Hier soll ja eine Zeile eingefügt werden. Leider endet Dein Grundkurs an dieser Stelle. :wink:

Ich bin einfach mal davon ausgegangen, dass der richtige Befehl "add" sein müsste. Stimmt die Annhame?

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
  <add sel='macros/macro/connections/connection/macro/'>
     <macro ref="storage_ship_m_container_01_macro" connection="ShipConnection"/>
  </add>
 </diff>
Funktioniert leider auch noch nicht. Wobei ich mir hierbei auch nicht sicher bin, ob es ausreicht, einfach nur diese eine Zeile zu ergänzen ...

Für weitere Hilfen und Tipps wäre ich dankbar!


:)

Edit: Da auch das Ersetzen der originalen Dateien in den originalen CAT und DAT Dateien (hier 01 für den Skunk Laderaum und 06 für den Missiontimer) keine Veränderungen im Spiel bewirken, editiere ich vielleicht auch einfach die falschen Dateien .... obwohl ich eigentlich glaube schon die richtigen gefunden zu haben ...)

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

Post by UniTrader » Thu, 23. Oct 14, 12:33

Phönix123 wrote:Du meintest wohl den Hinweis auf Dein Modding Grundkurs: http://forum.egosoft.com/viewtopic.php?t=370503

:wink:

Danke! Der Hinweis mit den diff-files ist schonmal nützlich. Wäre auch zu einfach gewesen, wenn man die Dateien einfach hätte ersetzen können.
:wink:
jep, genau den meinte ich.. hab vergesssen den Link rein zu kopieren ^^''
Phönix123 wrote:Was das Ausschalten des Mission Timers betrifft, gibt es aber das Problem, dass die Knoten und Values nicht eindeutig identifizierbar sind. Es gibt viele "set_value" Knoten mit dem Wert exact="$Path_Count*90s".

Das Adressieren mit

Code: Select all

<replace sel='mdscript/cues/library/cues/cue/actions/do_if/set_value'
<set_value name="$MissionDurationx" exact="60m"/>
  </replace>
klappt also nicht, da es mehrere "cues" und mehrere "set_values" mit denselben Werten gibt.

Also habe ich mal versucht, jeden einzelnen Wert seperat zu adressieren:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
  <replace sel='//set_value[25]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[46]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[64]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[85]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
   <replace sel='//set_value[104]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[126]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[145]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
  <replace sel='//set_value[167]'>
    <set_value name="$MissionDurationx" exact="60m"/>
  </replace>
 </diff>
Leider funktioniert das auch nicht (die Dateien sind nun im extension Ordner, in einem seperaten Mod Verzeichnis).

Irgend welche Tipps?
ich kanns grad nicht prüfen aber kann es sein, dass du in den [] die Zeilennummer angegeben hast? wäre in dem fall nicht richtig, da eine Zahl allein hier angibt der wievielte Knoten das ist, auf den die Selektion zutrifft. und du kannst mit jedem Knoten im xpath noch weitere Kriterien geben, da wird sich doch vorher was in den <do_if> finden lassen, was die sache eindeutig macht oder? (XR akzeptiert nur Einträge, die Eindeutig sind, msel-support ist leider noch nicht drin..)
Phönix123 wrote:Mein zweites Vorhaben, der Skunk einen Laderaum zu geben war auch noch nicht erfolgreich. Hier soll ja eine Zeile eingefügt werden. Leider endet Dein Grundkurs an dieser Stelle. :wink:

Ich bin einfach mal davon ausgegangen, dass der richtige Befehl "add" sein müsste. Stimmt die Annhame?

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
  <add sel='macros/macro/connections/connection/macro/'>
     <macro ref="storage_ship_m_container_01_macro" connection="ShipConnection"/>
  </add>
 </diff>
Funktioniert leider auch noch nicht. Wobei ich mir hierbei auch nicht sicher bin, ob es ausreicht, einfach nur diese eine Zeile zu ergänzen ...
Siehe oben - der Knoten ist nicht eindeutig und ausserdem müsstest du iirc in der component ne neue connection einfügen und an diese im macro den Laderaum anhängen - ich kanns dir heut abend genauer sagen, momentan keine zeit.
Phönix123 wrote:Edit: Da auch das Ersetzen der originalen Dateien in den originalen CAT und DAT Dateien (hier 01 für den Skunk Laderaum und 06 für den Missiontimer) keine Veränderungen im Spiel bewirken, editiere ich vielleicht auch einfach die falschen Dateien .... obwohl ich eigentlich glaube schon die richtigen gefunden zu haben ...)
Originaldateien ändern supporte ich nnur, wenns wwirklich nicht anders geht :P
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 ;)

Phönix123
Posts: 10
Joined: Mon, 10. Dec 07, 13:37

Post by Phönix123 » Fri, 24. Oct 14, 17:12

Danke erstmal für die Hilfe! :)

Einen kleinen Erfolg konnte ich bereits verbuchen:

In der md/GM_Transport_Passengers.xml konnte ich den Missionstimer schonmal erfolgreich ausschalten. 8)

Mit der md/GM_Smuggle_Goods.xml klappt das dagegen leider noch nicht. Ich schätze, ich schaffe es nicht, die betreffenden Stellen richtig (und eindeutig) zu adressieren ... So siehts grad aus:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<!--xxx-->
<diff>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_1"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_2"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_3"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_4"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_5"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_6"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_7"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace>
<replace sel='mdscript/cues/library/cues/cue[@name="Check_Variation_8"]/actions/do_if[@value="$VariationResult and this.$SetupVariation"]/set_value[@name="$MissionDuration"]'>
<set_value name="$MissionDuration" exact="3600s"/>
</replace> 
</diff>
Was läuft da falsch?

Mein zweites Vorhaben, der Skunk einen Laderaum zum Stationshandel zuzuweisen hat bisher auch noch nicht funktioniert. Ich glaube dieses Vorhaben ist insgesamt aber auch etwas komplizierter. Der Skunk einfach den Containerladeraum eines m Frachters zuzuweisen scheint nicht auszureichen, damit das Spiel dies für den Stationshandel im Handelscomputer erkennt. Irgend etwas fehlt da noch ....
Momentan sieht das Script für \assets\units\player\macros\unit_player_ship_macro.xml (auch unit_player_ship_a_macro.xml bis unit_player_ship_c_macro.xml) folgendermaßen aus:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<!--xxx-->
<diff>
  <replace sel='macros/macro/connections/connection[@ref="storage"]/macro'>
     <macro ref="storage_ship_m_container_01_macro" connection="ShipConnection"/>
  </replace>
  <add sel='macros/macro/connections'>
  <connection ref="connection_storage01">
     <macro ref="storage_ship_m_container_01_macro" connection="ShipConnection" />
  </connection>
  </add>
  <replace sel='macros/macro/properties/hull'>
      <hull max="666666" threshold="0" />
  </replace>
 </diff> 
Hat hierzu jemdan eine Idee?

Den Hull habe ich geändert, um zu testen ob sich im Spiel überhaupt etwas tut. Leider nichts bisher ... Ich hab auch versucht, bei anderen Mods, die entsprechende Datei ändern, wie z.B. "Lost Weapons" mir das Vorgehen abzuschauen. Aber meiner Meinung nach machen die auch nichts anderes, nur bei denen funktioniert das ... :wink:

Danke schonmal für weitere Ideen und Tipps. :)

Post Reply

Return to “X Rebirth - Scripts und Modding”