Gelandete Schiffe abfragen

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

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

Post Reply
HashtagMC
Posts: 165
Joined: Sun, 23. Nov 14, 18:22
x3

Gelandete Schiffe abfragen

Post by HashtagMC » Mon, 26. Oct 15, 21:02

Der Scripteditor hat unter Generel Object Commands den Befehl <RetVar/IF> = <RefObj> -> get number of landed ships. Der gibt aber nur die Anzahl der gelandeten Schiffe zurück, nicht diese selbst.

Meine Frage lautet also: Wie bekomme ich alle auf einem Schiff gelandeten Schiffe geliefert (vorzugsweise als Array)?



Im Moment habe ich folgendes Script:

Code: Select all

$number = [THIS] > get number of landed ships
$i = 0
while $i < $number
    $ship = [THIS] -> find ship:class or type=null race=Player flags=[DOCKEDAT] refobj=null maxnum=null with homebase=[THIS]
    //Aktion für das Schiff
    $i = $i + 1
end
return null
Damit soll für alle Schiffe, die auf THIS gelandet sind und THIS als homebase haben eine Aktion ausgeführt werden. Blöderweise findet das Script aber dann x mal das selbe Schiff, bei 31 gelandeten Schiffen führt es dann 31 mal eine Aktion auf dem ersten Schiff aus.
My scripts' t-files use the namespace xx11xx (e.g 491101, 441101, ... )

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

Post by X2-Illuminatus » Mon, 26. Oct 15, 22:02

Den Befehl <RetVar> = <RefObj> get ship array from sector/ship/station sollte es bereits in X2 geben, wenn ich mich recht entsinne, und dort auch in den Universe and Sector Commands zu finden sein.
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!

HashtagMC
Posts: 165
Joined: Sun, 23. Nov 14, 18:22
x3

Post by HashtagMC » Mon, 26. Oct 15, 22:45

Ja, den Befehls gibts. Besten Dank.

Skript sieht jetzt so aus:

Code: Select all

$ships = [THIS] -> get ship array from sector/ship/station
$arraysize = size of array $ships
$arraysize = $arraysize - 1
$i = 0
while $i < $arraysize
    $ship = $ships[$i]
    = $ship -> call script plugin.hmc.hbname:
    $i = $i + 1
end
return null
Theortetisch sollte das alle gelandeten Schiffe umbenennen (plugin.hmc.hbname). Klappt aber net.

//Edit: Sehe grade, dass immer eins über bleibt. Durch das Entfernen von $arraysize = $arraysize - 1 gelöst. Dachte eigentlich, dass das so müsste, weil Arrays ja bei 0 anfangen und ein 30 langes Array also bei Position 29 endet.
My scripts' t-files use the namespace xx11xx (e.g 491101, 441101, ... )

Post Reply

Return to “X²: Die Bedrohung - Scripts und Modding”