(Skriptbeispiel gesucht) Ein Schiff klonen.
Moderators: Moderatoren für Deutsches X-Forum, Scripting / Modding Moderators
(Skriptbeispiel gesucht) Ein Schiff klonen.
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
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
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.
$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
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
Hallo UniTrader,
ich danke Dir für das kleine Beispiel. Ich werde es testen, sobald ich auch zu Hause bin.
MFG
Klaus
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
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..
(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
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
Super - Duper
Das ist wirklich mehr als ich zu hoffen gewagt habe. Vielen Dank für Deine Mühe.
MFG
Klaus
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
- ubuntufreakdragon
- Posts: 5195
- Joined: Thu, 23. Jun 11, 14:57
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
XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist
Danke für den Tipp.ubuntufreakdragon wrote:oder du löschst aus lib.le.clone.ship aus Lucikes Befehlsbibliothek einfach die Zeile zum zerstören des original Schiffs.
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. 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
- X2-Illuminatus
- Moderator (Deutsch)
- Posts: 24965
- Joined: Sun, 2. Apr 06, 16:38
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!
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!
Ich danke Dir für Deinen Beitrag.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.
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
- X2-Illuminatus
- Moderator (Deutsch)
- Posts: 24965
- Joined: Sun, 2. Apr 06, 16:38
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!
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!
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.X2-Illuminatus wrote:Poste doch einfach mal deinen Code. Das macht das Analysieren, was schieflaufen könnte, sicherlich einfacher.
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE
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?
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
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
[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
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
Ganz großes Kino! Die Nummer lautet 24. Ist das geil!:lol:
Ich sage so etwas sonst nicht! Aber nach zwei Wochen .
Großen Dank an Euch noch mal. Nun ist es perfekt!
Ich sage so etwas sonst nicht! Aber nach zwei Wochen .
Großen Dank an Euch noch mal. Nun ist es perfekt!
[ external image ] Dif-tor heh smusma (Lebet lang und in Frieden – vulkanischer Gruß), Cockpitsammlung, Spieler HQ aktivieren, XENON-DAE
Sound abspielen
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.
Hätte einer von Euch eine Idee??
Ein Befehl lautet; "play sample "Var\number"
Damit könnte ich bisher aber nicht zum Erfolg kommen.
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
- X2-Illuminatus
- Moderator (Deutsch)
- Posts: 24965
- Joined: Sun, 2. Apr 06, 16:38
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!
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!
Meine Experimente mit der Sounds.txt haben etwas gedauert.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.
Aber nun funktioniert es tadellos. 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