Stationssuche per "find station in galaxy" ?

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

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

fennry
Posts: 1611
Joined: Wed, 6. Nov 02, 20:31
x3

Stationssuche per "find station in galaxy" ?

Post by fennry »

Ich nutze "find station in galaxi" in einer Schleife um Stationen vom typ Equiptdock zu finden. Wie kann ich verhinderen, das ich mehrmals das selbe Dock angezeigt bekomme aber andere Docks nicht gefunden werden?
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Um ganz sicher zu gehen würde ich den SE-Befehl [get station array from sector] Sektorweise benutzen.

Gruß
Lucike
Image
fennry
Posts: 1611
Joined: Wed, 6. Nov 02, 20:31
x3

Post by fennry »

Also muss ich tatsächlich Sektor für Sektor durchsuchen?

Ach ja wenn ich einmal am fragen bin:
Bekomme ich auch so schöne Auswahlboxen hin wie die in den Missionen?
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Es gibt auch einen Find station in galaxy der dir ein Array zurück liefert (glaube ich) Der neue der mit 1.4 zur Verfügung gestellt wurde. Versuche es einfach mal aus.

Gruß ticaki
Zur Zeit nicht aktiv
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ticaki wrote:Es gibt auch einen Find station in galaxy der dir ein Array zurück liefert (glaube ich) Der neue der mit 1.4 zur Verfügung gestellt wurde. Versuche es einfach mal aus.
Ticaki meint wohl den Befehl denn Du schon verwendest, allerdings unter der Verwendung von [find.multipe].

$Station = find station: sector=$SelSec class or type=Equipment Dock race=null flags=[Find.Multiple] refobj=null maxdist=null maxnum=500 refpos=null

$Station sind alle Ausrüstungsdocks im $SelSec-Sektor als Array.

Gruß
Lucike
Last edited by Lucike on Mon, 11. Oct 04, 00:08, edited 1 time in total.
Image
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

maxnum sollte eine Zahl enthalten.

Gruß ticaki
Zur Zeit nicht aktiv
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ticaki wrote:maxnum sollte eine Zahl enthalten.
Stimmt, ich nehme immer 500. ;)

Gruß
Lucike
Image
fennry
Posts: 1611
Joined: Wed, 6. Nov 02, 20:31
x3

Post by fennry »

Mal schaun ich sag bescheid was draus wird
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Lucike wrote:
ticaki wrote:maxnum sollte eine Zahl enthalten.
Stimmt, ich nehme immer 500. ;)

Gruß
Lucike
ich immer 10.000... zu XeHonks Zeiten ist der immer mit unmöglichen Maps gekommen um Scripte zu testen *g*

Gruß ticaki
Zur Zeit nicht aktiv
fennry
Posts: 1611
Joined: Wed, 6. Nov 02, 20:31
x3

Post by fennry »

Ich hab noch ein wenig rumprobiert und das kam raus:

Code: Select all

001   $zaehler = 0
002   $anzahl = 0
003   $liste =  array alloc: size=0
004   $liste =  find station: sector=Königstal class or type=Equipment Dock race=Boronen flags=[Find.Multiple] refobj=null maxdist=null maxnum=500 refpos=null
005   $anzahl =  size of array $liste
006   while $zaehler < $anzahl
007    $dock = $liste[$zaehler]
008    write to player logbook $dock
009   end
010   return null
Dummerweise konnte ich es nicht mal probieren, weil sich das Spiel aufhängt sobald ich versuche es mit "R" zu starten :cry: Was ist falch daran?
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

Du hast da eine Endlosschleife. Ein inc $zaehler fehlt zwischen Zeile 8 und 9.

Gruß
Lucike
Image
ArcaJeth
Posts: 2245
Joined: Mon, 10. Nov 03, 18:22
x3tc

Post by ArcaJeth »

Zeile 3 kann raus und in die while-Schleife muss noch ein "inc $zaehler" rein ;) ... daher hängt sich das auch auf (Endlosschleife)

Edit: Zeile 2 kann auch raus ;)
fennry
Posts: 1611
Joined: Wed, 6. Nov 02, 20:31
x3

Post by fennry »

Danke euch beiden für die schnelle Antwort :)
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ArcaJeth[D6a] wrote:Zeile 3 kann raus
Arrays sollten grundsätzlich initialisiert (Zeile 3) werden. ;)

Gruß
Lucike
Image
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Lucike wrote:
ArcaJeth[D6a] wrote:Zeile 3 kann raus
Arrays sollten grundsätzlich initialisiert (Zeile 3) werden. ;)

Gruß
Lucike
Öhm :nö: AJ hat recht :D

Gruß ticaki
Zur Zeit nicht aktiv
User avatar
SpaceTycoon
Posts: 1190
Joined: Wed, 6. Nov 02, 20:31
x4

Post by SpaceTycoon »

fennry wrote:

Code: Select all

001   $zaehler = 0
005   $anzahl =  size of array $liste
006   while $zaehler < $anzahl
007    $dock = $liste[$zaehler]
008    write to player logbook $dock
009   end
010   return null
Eine Endlosschleife. Du veränderst innerhalb der Schleife weder $zaehler noch $anzahl (Befehl "dec" oder "inc"). Um bei solchen Programmierfehlern das Aufhängen zu verhindern kann man an den Anfang eines Scriptes den Befehl "infinite loop detection enabled=[TRUE]" setzen. Dann wird das Script durch X2 nach gewisser Zeit "zwangsbeendet" und man bekommt darüber eine Nachricht ins Logbuch.
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ticaki wrote:Öhm nö AJ hat recht :D
Ui, echt? :oops:

Jetzt sind wir gerade im Thema. Wann genau muss den ein Array initialisiert werden und wann nicht?

Gruß
Lucike
Image
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Wenn du eine Funktion oder ein Script aufrufst das ein Array zurück gibt brauchst du es nicht zu initialisieren.

Gruß ticaki

P.S. du musst aber überprüfen ob das array initialisiert wurde... eine Funktion liefert dir nur ein gültiges Array zurück wenn wenigstens ein Element gefunden wurde ansonsten ist der Rückgabewert null.
Zur Zeit nicht aktiv
User avatar
Lucike
Posts: 12969
Joined: Sun, 9. May 04, 21:26
x4

Post by Lucike »

ticaki wrote:Wenn du eine Funktion oder ein Script aufrufst das ein Array zurück gibt brauchst du es nicht zu initialisieren.
Also auch bei einem Clone-Befehl?

Gruß
Lucike
Image
ticaki
Posts: 4861
Joined: Wed, 6. Nov 02, 20:31
x3

Post by ticaki »

Jo ein Clonebefehl initialisiert das array selbstständig.

Gruß ticaki
Zur Zeit nicht aktiv

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