[MOD] Reparaturdienst

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

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

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

[MOD] Reparaturdienst

Post by Marvin Martian » Sun, 6. Dec 15, 16:22

Hallo,

XR 4.0.0 ist eine Grundvoraussetzung um diese Mod zu nutzen.

Was macht die Mod?
Kurz gesagt fliegen Schiffe umher welche andere Schiffe und Stationen reparieren.
Außerdem erlaubt es die Mod Schiffswracks wieder instand zu setzen.

Download:
Techservice-106.zip
  • 1.06 Bugfix
  • 1.05 Sprachsupport, neues Einstiegsmenü
  • 1.02 Änderung an der Instandsetzung von Wracks
  • 1.01 Anpassungen, Positionsmeldungen eigener Reparaturschiffe
  • 1.0 Initial Release
Installation:
Entpackten Ordner mm_techservice/ ins extensions/ Verzeichnis von Rebirth kopieren

Bedienung:
Jobs arbeiten von alleine.
Ein eigenes Reparaturschiff benötigt ein Bau- oder Handelsschiff mit Baudrohnen.

per Com zu Pilot/Kapitän statt "[5] Schiffsdetails" ist dort nun unter 5 "mehr ..." -> "Reparaturdienst" (bei nicht-Kampfschiffen mit Baudrohnen) findet man dann die Optionen das Schiff auf Zonen/Sektoren/Cluster zu hetzen wo es dann seinen selbstlosen Pflichten nachkommt,
bzw. die Option welches Wrack man gerne wieder aufbauen möchte.
--
Außerdem ist noch eine Funktion dabei Konstruktionsschiffe von einem Bauplatz zu lösen, diese Gesprächsoption findet sich beim Kapitän des Schiffs wenn es mit dem Bauplatz verbunden ist.

Bekannte Probleme:
Um den Reparaturdienst nicht als Kanonenfutter enden zu lassen nutzt dieser die Cover Funktion des Spiels um sich als Neutral-Fraktion zu definieren, bei Spielerschiffen hat dies den Nebeneffekt dass diese nicht mehr in der Besitztümerliste auftauchen.
Man muss sein Reparaturschiff also über die Karte suchen, wo es noch als grüner Punkt erscheint. Also merken wo man seine Schiffe hingeschickt hat, sonst ist nix mehr mit wiederfinden.
Last edited by Marvin Martian on Thu, 22. Dec 16, 10:21, edited 5 times in total.

Sabi
Posts: 13
Joined: Wed, 28. Nov 07, 22:07

Post by Sabi » Mon, 28. Dec 15, 12:21

Es würde gut dazu passen Wracks mit den Baudrohnen zu demontieren u noch Materialien dafür zu erhalten, um wirklich alles zu verwerten. X Universum soll ja nicht vermüllen mit der Zeit.
:wink:

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

Post by Marvin Martian » Mon, 28. Dec 15, 13:19

da die Schiffe kein Baumodul haben, kann man leider keine Rohstoffliste bekommen und pauschal pro verwertetem Wrack ist das vielleicht auch nicht sooo sinnvoll, zumal man dann eine Handelsroutine bräuchte die das Zeug ab&an abliefert - von der Limitierung der Frachtraumklassen mal abgesehen
daher der Weg die Wracks/Schiffe einfach zu reparieren

Mike77
Posts: 35
Joined: Wed, 30. Nov 05, 00:39
x4

Post by Mike77 » Tue, 29. Dec 15, 18:00

Hört sich gut an.

Ist der Mod savegame kompatibel, oder verliere ich meine Saves beim löschen des Mods?

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

Post by Marvin Martian » Tue, 29. Dec 15, 18:53

Ja man kann den Mod entfernen, die Jobschiffe werden das zwar nicht so toll finden und außerdem sollte man eigene Schiffe zuvor wieder in die eigene Staffel holen damit die AI beendet wird, aber prinzipiell geht es

habe die Version aktualisiert und mit einer gelegentlichen Meldung im Logbuch ausgestattet, damit man die eigenen Reparaturschiffe wenigsten wieder findet

Mike77
Posts: 35
Joined: Wed, 30. Nov 05, 00:39
x4

Post by Mike77 » Tue, 29. Dec 15, 21:42

Danke für die Antwort.

Werde den MOD gleich mal ausprobieren.

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

Post by Cappy1401 » Thu, 31. Dec 15, 18:39

Kleine Anregung.

Zum entfernen baue eine Option ein welche die Jobschiffe move.die machen lässt und Schiffe des Spielers wieder in die Staffel setzt.
Somit lässt sich die Mod dann ohne jedes Problem löschen.

Die Option save="false" in der content.xml sorgt dafür, das die Mod nicht als eintrag im Savegame steht.
Dies sorgt dafür, dass das Save auch nach dem Entfernen wieder geladen werden kann.
Sollte für entfernbare Mods auch immer auf false gesetzt werden.

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: 2943
Joined: Sun, 8. Apr 12, 09:40
x4

Post by Marvin Martian » Thu, 31. Dec 15, 19:35

hmmm..... Vorschläge wie das gehen soll?

move.die ist ja prinzipiell vorhanden, schon wegen der Jobschiffe, aber wie soll das noch ausgeführt werden wenn der Mod nicht mehr geladen und die AI folglich nicht mehr vorhanden ist :?

theoretisch werden auch durch <on_abort> die Tarnung aufgehoben, aber ebenfalls, wie soll das noch passieren wenn das AI-script fehlt :roll:
auch kannst du in der AI kein start_script auf die AI ausführen, um jetzt anzudenken per selbstmordtrigger zu arbeiten

die einzige Option wäre ein Ausschalter per MD, der die Jobs deaktiviert und die bestehenden (getarnten) Spielerschiffe als Skunkfollower neu startet

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

Post by Cappy1401 » Sat, 2. Jan 16, 22:38

Eine Mod löscht man nicht einfach, vorallem wenn Sie Dinge wie Schiffe oder auch Stationen über AI-Scripts benutzt, das kann böse enden.

Die Schiffe müssen also zuerst gestoppt werden, Aufträge sollten jedoch zuende geführt werden, damit es keine Probleme gibt.

Die Abfrage baue so ein, das Sie stattfindet, bevor das Schiff einen neuen Traderun beginnt, denn sonst könnte es passieren, das die Händler blockieren.
Also lieber auf nummer Sicher gehen.

Die Option zum entfernen der Mod kannst Du ins Menü einbauen.
Man ruft bevor man die Mod löscht, den Menüpunkt (Deinstallieren) auf.

Das die Mod gelöscht werden kann, kannst Du auch deutlich auf dem Bildschirm durch einen Hint anzeigen.
In das Script welches die Deinstallation in das Menü setzt, baue auch das starten ein und zugleich entprechende Dinge, damit es sich alle Schiffe merkt wo Du startest.
Wenn dann die Variable durch den Menüpunkt Deinstallation gesetzt wurde, prüft es regelmäßig, ob alle Schiffe move.die gemacht haben bzw. wieder dem Spieler folgen.

Das AI-Script selbst stoppt die Jobschiffe, in dem es dem Kapitän den Befehl move.die gibt, was man durch Abfrage einer Globalen Variablen in den AI-Scripts lösen kann.
Zweitens ist es problemlos möglich einen selbstmord in die Scripts einzubauen, die Jobschiffe begehen ja selbstmord. :D
Ist es ein Spielereigenes Schiff wird einfach move.follow anstatt move.die aufgerufen.
Du kannst auch aus einem AI-Script heraus problemlos jedes andere AI-Script aufrufen.
Der Befehl <run_script> machts möglich.

Hier ein Beispiel für eine solche abfrage in einem AI-Script.
Die globale Variable ( global.$Move_Die ) kannst Du aus jedem anderen Script heraus abfragen aber auch setzen, denn Sie ist für absolut alle MD und AI-Scripts les und beschreibbar.

Code: Select all


<do_if value="global.$Move_Die" exact="true">
	<set_cover_owner object="this.ship"/> <!-- Wenn nicht gesetzt passiert nichts -->
	<do_if value="this.ship.playerowned"><!-- Abfragen ob das Schiff dem Spieler gehört und wenn ja move.follow starten-->
		<run_script object="this.ship.pilot" name="'move.follow'">
			<param name="target" value="player.primaryship" />
		</run_script>
		<return />
	</do_if>
	<do_else><!-- Wenn das Schiff nicht dem Spieler gehört move.die starten -->
		<set_value name="$bigship" exact="this.ship.isclass.ship_l or this.ship.isclass.ship_xl" />
		<run_script name="'move.die'"><!-- Funktioniert auch mit Gigus oder noch kleiner, es ist keine änderung nötig -->
			<param name="byjump" value="$bigship" />
			<param name="byhighway" value="not $bigship" />
			<param name="bydock" value="not $bigship" />
			<param name="byidle" value="true" />
		</run_script>
	</do_else>
</do_if>



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: 2943
Joined: Sun, 8. Apr 12, 09:40
x4

Post by Marvin Martian » Sun, 3. Jan 16, 09:53

also bevor du das mit den Jobs auf die Art machst setze

Code: Select all

<set_job_active job="'dein_job'" activate="false"/>
und warte eine gewisse Zeit
wenn man nicht die Move.die gänzlich vergessen hat, bereinigt das den Zauber ganz von selbst

deine Idee führt nur dazu dass die Jobs neue Schiffe erstellen die dann move.die machen _wollen_

da hier move.die aber nur per run_script innerhalb deiner customAI ausgeführt wird dürften die ebenso leblos umhertreiben wie wenn du dir das gleich gespart hättest

eine uninstallroutine hilft zudem wenig wenn man diese nicht benutzt, das einzige sichere ist save=true und ein "uninstall" update wo dann save=false mitbringt :| oder gleich bei save true bleiben
was aber auch nicht so viel bringt da einige einfach den Eintrag aus den Save werfen und es trotzdem versuchen zu starten :roll:

und wirklich entfernen kann man kaum eine Mod, selbst wenn man nur irgendwo ein <wait ..> einfügt wars das im prinzip schon

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

Post by Cappy1401 » Mon, 4. Jan 16, 21:56

Mit deinem

Code: Select all

<set_job_active job="'dein_job'" activate="false"/>
hast Du recht.

Aber das die Schiffe sofort wieder erstellt werden ist falsch, es sei denn jemand ganz bestimmtes hat vergessen bei den Jobs

Code: Select all

<time interval="3600"/>
zu setzen :D

Ein <wait..> ist auch kein hindernis, denn es sagt ja nur, das eine gewisse Zeit gewartet werden soll.
Ein <wait..> ist nur bei Änderungen des AI-Scripts ein Problem.

Die Abfrage zum Selbstmort setzt man aber auch einmal an den Anfang des Scripts und vor den Teil, wo das Schiff mit etwas neuem beginnt, damit dies unterbunden wird.
Du kannst die Schiffe aber auch anstatt mit move.die mit

Code: Select all

<destroy_object object="$Ship" />
entsorgen.

Was das Uninstall-Script betrifft, so ist es kein Unsinn.
Wer die Möglichkeit nicht benutzt muss ein :teladi: sein und dann hilft weder ein :xenon: noch ein :khaak:.

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

Reaperxvii
Posts: 350
Joined: Thu, 29. May 14, 19:03
x3ap

Post by Reaperxvii » Fri, 15. Jan 16, 11:26

I know its slated for 4.00 but is there any chance this would work with 3.61?
"We are the middle children of History. Born too late to explore the earth, born to early to explore the stars."

"Time is the fire in which we burn"

Reaper's Mod Index

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

Post by Marvin Martian » Fri, 15. Jan 16, 11:49

remove .jobmainzone-Part from the patrol-AI
and maybe change the M-class ship - Jobs to any L-class, or ignore that the ships will be stay in the Shipyard zone they will be created

User avatar
Halodrian
Posts: 30
Joined: Tue, 23. Mar 04, 17:30
x4

Post by Halodrian » Tue, 1. Mar 16, 08:24

Hello,

I just tested this mod for a few days now and really like the idea of a supporting vessel to repair your fleet.

I just came across an issue with the restore option.

I told one of my freighters to restore a wrecked Titurel and captured the restored ship. I left zone to find a crew and suddenly the Titurel got "killed" (it was not been shot but just vanished) including my marine who was still on board.

I gave it another try having a full a crew at hand this time. I had to see the caped, restored ship vanishing again as soon as I left zone.

The same happened if I give the capped ship to a commander (Station or ship). Leaving zone or the ship in question leaving the zone makes it vanish.

It comes down to; the ships restored and captured can only be used if you and the ship stay in the same zone. Looks like if you stay in visual range of the restored ship or dock at it, it can move freely in the System.

Are there any known incompatibilities with other MOD's?

I'm using the follwoing MOD's:

DLC's TeladiOutpost + Home of Light
AutoTrain
BoardingOptions
BoardingPlus
NPS on your Stations
Carriers
More Crew
Titurel Engine Fix (standalone)
YAT 2.0
+ your TechCareService
-----------------------------------------------------------------------------------------------------------------------------------------
ASUS Z87-Deluxe/ Intel Core i7-4770-K/ 16GB DDR3-1866Mhz/ Nvidia GeForce GTX 780Ti 3GB DDR5/ Win 10 Pro

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

Post by Marvin Martian » Wed, 2. Mar 16, 10:03

Thanks for reporting,
i can't check along why the ship get gestroyed at this state, so i change the code to create a similar new ship instead of repair the old object - this should be solve the problem - new version 1.02 linked in first post

Post Reply

Return to “X Rebirth - Scripts und Modding”