[gelöst] Wie kann ich alle Stationen eines Sektors in der Sektorkarte aufdecken?

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

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

Freizeitspieler
Posts: 98
Joined: Tue, 9. Aug 05, 19:50
x4

[gelöst] Wie kann ich alle Stationen eines Sektors in der Sektorkarte aufdecken?

Post by Freizeitspieler »

Titel sagt eigentlich schon alles. Gibt es eine möglichkeit mittels Scripteditor alle Stationen eines Sektors in der Sektorkarte einzutragen?
Ich bin schlichtweg zu faul Aldrin komplett zu erforschen :D
Last edited by Freizeitspieler on Wed, 12. Nov 08, 19:44, edited 1 time in total.
alles
Posts: 912
Joined: Sat, 1. Oct 05, 14:42
x4

Post by alles »

Code: Select all

<RetVar> = <RefObj> get station array from sector
Das Array lässt du dann durch ne Schleife laufen, und setzt dabei alle Stationen auf bekannt.

cu
alles
Freizeitspieler
Posts: 98
Joined: Tue, 9. Aug 05, 19:50
x4

Post by Freizeitspieler »

Ich bin nicht so bewandert im SE, kann nur ein bisschen "normales programmieren" und hab jetzt mal folgendes zusammengebaut:

Code: Select all

001   $a = [SECTOR] -> get station array from sector
002   $b =  size of array $a
003   $b = $b - 1
004   $n = 0
005   $c = $a[$n]
006   $c -> set known status to [TRUE]
007   inc $n = 
008   return null
Jetzt hab ich aber noch ein paar Probleme:

1. Stimmt das [SECTOR] in der ersten Zeile? Ich musste nämlich zum Starten eines Test-Scripts, das mir $a ins Logbuch schreiben sollte ein Schiff oder eine schon bekannte Station im Sektor auswählen, nicht den Sektor selbst.

2. Zwischen Zeile 4 und 5 müsste nun die Schleife beginnen. Bloß, wie mache ich eine Schleife ($n soll der Schleifenzähler sein)? In Delphi-Schreibweise würde ich folgendes schreiben:

Code: Select all

for $n:=0 to $b do
...
end;

ODER

while $n<=$b do
...
end;
Einen "While"-Befehl hab ich zwar gefunden, aber ich finde keinen "Schleife beenden"-Befehl.
alles
Posts: 912
Joined: Sat, 1. Oct 05, 14:42
x4

Post by alles »

Code: Select all

001   $a = [SECTOR] -> get station array from sector 
002   $b =  size of array $a 
003   while $b 
004      dec $b =
005      $c = $a [$b]
006      $c -> set known status to [TRUE] 
007   end 
008   return null 
[SECTOR] - betrifft den Sektor, in dem sich das ausführende Schiff befindet

Willst du einen Sektor wählen, mußßt du dem Script noch das Argument Sektor verpassen:

Sektor Var/Sector Sektor wählen

z.B.

Schiff oder Station auswählen wird vom Script verlangt, wenn du ein Script aus dem Scripteditor mit "r" startest. Der brauch wohl ein Objekt, auf dem das Script ausgeführt wird.

cu
alles

ps: ich hoffe das Stimmt so, habs nicht getestet :roll:
UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader »

hier mal der Code wie ich ihn aus gewohnheit immer schreibe...

Code: Select all

Argument 1 sector Var/Sector wähle Sektor

$stat.arr = $sector -> get station array from sector
$stat.size = size of array $stat.arr
while $stat.size
| dec $stat.size
| $stat = $stat.arr [ $stat.size ]
| $stat -> set known status to [TRUE]
end
Anmerkungen dazu:
das "while $stat.size" hat die selbe funktion wie "while $stat.size != 0 AND $stat.size != null", da für den X SE gilt:
0 == [FALSE]
null == [FALSE]
ABER null != 0

das end (conditional) bekommst du, wenn du in ner leeren Zeile 3* Return drückst ;)

In der ersten Nicht abschaltbaren Abfrage solltest du normalerweise null wählen, ausser du willst ein Script auf einem Objekt auf Task 0 ausführen (wenn nen Script auf einem Objekt läuft beziehen sich die Konstanten [THIS], [OWNER], [SECTOR] und [ENVIRONMENT] übrigend auf das Objekt auf dem das Script läuft ;))



PS @mods es ist übrigens absicht, dass ich keine Code-Tags verwende, ich mag dieses Grüb überhaupt nicht...

EDIT by MADxHAWK: Codetags eingefügt
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 ;)
Freizeitspieler
Posts: 98
Joined: Tue, 9. Aug 05, 19:50
x4

Post by Freizeitspieler »

Danke für die Hilfe, hat super geklappt! :)

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