(Skriptbeispiel gesucht) Ein Schiff klonen.

Hier ist der ideale Ort um über Scripts und Mods für X³: Terran Conflict und X³: Albion Prelude zu diskutieren.

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

Post Reply
User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

(Skriptbeispiel gesucht) Ein Schiff klonen.

Post by Klaus11 » Tue, 25. Oct 16, 09:20

Hallo Skripter und Modder,

ich habe da mal wieder ein Problem, bei dem ich dringend eure Hilfe brauche.

Die Aufgabe: Ein Schiff zu klonen. (ein Duplikat erstellen)
Das Ermitteln des Schiffstyps und das Erstellen des gleichen Schiffes ist nicht mein Problem. Ich habe das Problem, die Ladung des Schiffes zu ermitteln, um es dem neuen hinzu zuzufügen.

Beispiel: Schiff A hat 30 Energiezellen und zwei 25mj Schilde und einige Erweiterungen. Diese Dinge sollen Schiff B auch zugeteilt werden.
Dieses dient nur als Beispiel, weil die Ladung immer wieder anders zusammengesetzt sein kann und mir vorher nicht bekannt ist.

Wie müsste das Array aussehen um die Waren und deren Anzahl auszulesen und wie wird die „while“ Schleife angelegt?
Das die Erweiterungen und Schilde auch zu den Waren gezählt werden, ist doch richtig?

MFG
Klaus
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

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

Post by UniTrader » Tue, 25. Oct 16, 13:04

aus dem kopf geschrieben der loop durch alle definierten waren:


$mt = 32
while $mt
. dec $mt
. $st = get number of wares for maintype $mt
. while $st
. . dec $st
. . $ware = get ware from maintype $mt and subtype $st
. . * Hier die $ware übertragen *
. end
end


das schliesst aber keine installierten waren ein - schilde muss man gesondert behandeln (im loop per install einfügen statt add) und Waffen anschliessend explizit per install in slot in die kanzeln bringen.


es gab glaube ich auch nen $object => get tradeable ware array aber grad nicht sicher.

ich werd daheim nochmal rein schauen und das nötige ausführlicher erklären, wenn ichs nicht vergese - falls nicht mich bitte per pm erinnern, ich vergesse sowas öfters.
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 ;)

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Tue, 25. Oct 16, 15:01

Hallo UniTrader,

ich danke Dir für das kleine Beispiel. Ich werde es testen, sobald ich auch zu Hause bin.

MFG
Klaus
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

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

Post by UniTrader » Tue, 25. Oct 16, 18:33

ok, jetzt hab ich zeit die richtigen kommandos zusammen zu tüfteln:
(Relevante Kommandos sind in den Trade Commands + Subkategorien sowie General Object Commands + Subkategorien - teilweise etwas unlogisch darauf verteilt)

$ship = Originalschiff
$clone = Klonschiff

* 1. Waren Klonen
$wares = get warearray for $ship ->
* könnte auch tradeable warearray gleich darüber sein
$wares.count = size of array $wares
while $wares.count
dec $wares.count=
$ware = $wares [ $wares.count ]
$amount = $ship -> get true amount of ware $ware in cargo bay
$clone -> add $amount units of $ware to cargobay
end

* 2. Schilde kopieren
$shields.count = $ship -> get number of shield bays
while $shields.count
dec $shields.count =
$shield = $ship -> get shield type in bay $shields.count
$clone -> install 1 unit of ware $shield
end

* 3. Waffen kopieren
* 3.1 turrets
$turrets.count = $ship -> get number of turrets
while $turrets.count
dec $turrets.count=
$bay.count = $ship -> get max. number of lasers in turret $turrets.count
while $bay.count
. dec §bay.count=
. $laser = $ship -> get laser type in turret $turrets.count at slot $bay.count
. $clone -> add 1 units of ware $laser
. $clone -> switch laser in turret $turrets.count gun $bay.count to $laser
end
end
* 3.2 hauptwaffen
$bay.count = $ship -> get number of laser bays
while $bay.count
dec §bay.count=
$laser = $ship -> get laser type in bay $bay.count
$clone -> install 1 units of ware $laser
end


das sollte Fracht und Ausrüstung abdecken. nicht ganz sicher wegen software, aber ich glaube die ist auch dabei..
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 ;)

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Tue, 25. Oct 16, 18:38

Super - Duper :lol: :D

Das ist wirklich mehr als ich zu hoffen gewagt habe. Vielen Dank für Deine Mühe.

MFG
Klaus
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
ubuntufreakdragon
Posts: 5195
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Thu, 27. Oct 16, 01:30

oder du löschst aus lib.le.clone.ship aus Lucikes Befehlsbibliothek einfach die Zeile zum zerstören des original Schiffs.
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Thu, 27. Oct 16, 08:25

ubuntufreakdragon wrote:oder du löschst aus lib.le.clone.ship aus Lucikes Befehlsbibliothek einfach die Zeile zum zerstören des original Schiffs.
Danke für den Tipp. :D

Das nenne ich mal einen Zufall. Gestern Abend habe ich nach weiteren Skriptbeispielen gesucht und dabei habe ich eben auch das Skript von Cycrow entdeckt.
Leider half mir das auch nicht weiter. Lucikes Befehlsbibliothek muss ich erst noch downloaden um dort nachschauen zu können. Wird aber erst heute Abend was.

Im Grunde funktioniert inzwischen fast alles. Nur die Schiffssoftware (Z. B. Sprungantrieb) verschwindet. :o Alles andere, wie Waren, Schilde, Hülle, Speed und Waffen wird korrekt übergeben. Nichts davon verschwindet oder wird verdoppelt.

Ich habe auch schon den Versuch unternommen nach der Software gezielt zu suchen. Leider gehört zu den „SS_Ware_Tech“ nicht nur die Software.
Wenn ich die gefundenen Waren in einen String umwandeln könnte, wäre es mir möglich diese als Textanzeige auszugeben. Dann könnte ich erkennen, was eigentlich wann bearbeitet wird. Durch eine gezielte Abfrage wäre dann auch das letzte Problem zu beheben.

Das originale Schiff soll auch bei mir zerstört werden.
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24965
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Fri, 28. Oct 16, 18:33

Mit dem Befehl <RetVar/IF> = is equipment: ware=<Var/Ware>, der sich fast ganz am Ende der Trade Commands findet, kannst du überprüfen, ob eine vorhandene Ware ein Ausrüstungsgegenstand (Softwares, Sprungantrieb etc.) ist oder nicht.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Fri, 28. Oct 16, 20:23

X2-Illuminatus wrote:Mit dem Befehl <RetVar/IF> = is equipment: ware=<Var/Ware>, der sich fast ganz am Ende der Trade Commands findet, kannst du überprüfen, ob eine vorhandene Ware ein Ausrüstungsgegenstand (Softwares, Sprungantrieb etc.) ist oder nicht.
Ich danke Dir für Deinen Beitrag.

Im Grunde war der Skriptcode schon richtig. Ich wollte einen Fehler beheben und habe dadurch weitere eingebaut.
Die eigentliche Ursache habe ich nun gefunden. Die beiden Schiffe, zwischen denen der Spieler wechseln kann, waren nicht gleich. Der Modder hatte im ersten Schiff vier Schildbuchten und im zweiten Schiff drei Schildbuchten vereinbart. (Da muss man erst mal drauf kommen.)

Nun taucht ein anderes Problem auf. Die ersten zwei bis drei Male funktioniert alles korrekt. Aber dann werden die Waren zufällig übergeben.

Kann man die Variablen entladen? So was, wie unload me?
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24965
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Sat, 29. Oct 16, 12:45

Poste doch einfach mal deinen Code. Das macht das Analysieren, was schieflaufen könnte, sicherlich einfacher.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Sat, 29. Oct 16, 16:15

X2-Illuminatus wrote:Poste doch einfach mal deinen Code. Das macht das Analysieren, was schieflaufen könnte, sicherlich einfacher.
Ich glaube nicht, dass das Posten des Skriptes alleine uns weiterbringt. Ich habe eine ausführliche Beschreibung des Problems zusammengetragen. Die PDF Datei ist zehn Seiten stark. Ich sende sie Dir gleich als PN. Ich bin gespannt auf Deine Meinung.
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Sat, 29. Oct 16, 23:40

X2-Illuminatus hat mich auf die richtige Spur geführt. Die Skripte laufen nun endlich. Ein Großes Dankeschön dafür an X2-Illuminatus.
Eine Sache fehlt mir aber dennoch zum wahren Glück. Vielleicht könnt ihr mir noch einmal helfen?

Ich würde gerne den Code wissen wollen, wie man die Computerstimme dazu bringt, folgendes zu sagen,: “Nicht Installiert!”
Ich nehme an, dass der Befehl “play sample Nummer” lautet. Aber wie lautet die Nummer? Oder bin ich da auch schon wieder falsch?
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

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

Post by UniTrader » Sun, 30. Oct 16, 00:31

play sample ist für geräusche, zum sprechen von text gibt es den hier:
[START|[skip|else] if [not]|while [not]| <RetVar/IF/START> = speak text page = <Var/Number> id = <Var/Number> priority = <Var/Number>
http://forum.egosoft.com/viewtopic.php?t=287364

um an die page und id zu kommen müsstest du die t/0001-L049.xml (oder in TC t/490001.xml) mal durchwühlen, sollte daraus offensichtlich sein ;)

PS Script Code kannst du mir gerne her geben und auch posten - auch wenn ich seit jahren kein X3 angefasst hab kann ich die Scriptcodes immer noch ganz gut lesen ;)
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 ;)

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Sun, 30. Oct 16, 01:06

Ganz großes Kino! Die Nummer lautet 24. Ist das geil!:lol:
Ich sage so etwas sonst nicht! :oops: Aber nach zwei Wochen :gruebel: .

Großen Dank an Euch noch mal. Nun ist es perfekt! :D :D
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Sound abspielen

Post by Klaus11 » Tue, 15. Nov 16, 22:10

Ich habe da eine Sounddatei im Ordner "s". Diese würde ich gerne mittels Skript abspielen.

Ein Befehl lautet; "play sample "Var\number"

Damit könnte ich bisher aber nicht zum Erfolg kommen. :cry:

Hätte einer von Euch eine Idee??
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 24965
Joined: Sun, 2. Apr 06, 16:38
x4

Post by X2-Illuminatus » Tue, 15. Nov 16, 22:23

Schau mal, ob die Sounddatei in der Sounds.txt (im types-Ordner) definiert ist. Wenn nein, musst du dort einen entsprechenden Eintrag anlegen. Wenn die Datei hingegen schon einen Eintrag hat, versuche mal den Volume-Wert zu ändern. Vielleicht ist dieser einfach nur so leise, dass man nichts hört.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!

User avatar
Klaus11
Posts: 859
Joined: Mon, 13. Feb 12, 17:23
x3ap

Post by Klaus11 » Wed, 16. Nov 16, 18:03

X2-Illuminatus wrote:Schau mal, ob die Sounddatei in der Sounds.txt (im types-Ordner) definiert ist. Wenn nein, musst du dort einen entsprechenden Eintrag anlegen. Wenn die Datei hingegen schon einen Eintrag hat, versuche mal den Volume-Wert zu ändern. Vielleicht ist dieser einfach nur so leise, dass man nichts hört.
Meine Experimente mit der Sounds.txt haben etwas gedauert. :cry:
Aber nun funktioniert es tadellos. :D Ich danke Dir, X2, für Deine schnelle Hilfe.
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE

Post Reply

Return to “X³: Terran Conflict / Albion Prelude - Scripts und Modding”