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
User avatar
HashtagMC
Posts: 155
Joined: Sun, 23. Nov 14, 19:22

Gelandete Schiffe abfragen

Post by HashtagMC » Mon, 26. Oct 15, 22: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: 20848
Joined: Sun, 2. Apr 06, 16:38

Post by X2-Illuminatus » Mon, 26. Oct 15, 23: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.
Besteht Interesse an einem Nopileos-Hörbuch?

Farnhams Legende und Nopileos als E-Books!

"People who think they know everything are a great annoyance to those of us who do." - Isaac Asimov

"If it's not impossible, there must be a way to do it." - Sir Nicholas Winton

User avatar
HashtagMC
Posts: 155
Joined: Sun, 23. Nov 14, 19:22

Post by HashtagMC » Mon, 26. Oct 15, 23: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”