Scripthilfe - Wähle zu erstellenden Schiffstyp anhand einer Variable

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

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

Post Reply
X2return
Posts: 363
Joined: Sat, 19. Nov 05, 22:54
x4

Scripthilfe - Wähle zu erstellenden Schiffstyp anhand einer Variable

Post by X2return » Tue, 14. Mar 17, 01:11

Servus,
Ich bin sehr detailverliebt und erstelle gerne passend ausgerüstete Schiffe per einfachem Script. Diese werden zu über 90% für den Betrieb mit Lucikes Scriptkollektion erstellt (HVT, WVH, SRD, SGS, PBR etc.).

Im Prinzip bin ich sehr zufrieden mit dem was aus meinen einfachen Schiffe-Erstellen-Scripts seit X2 geworden ist. Jedoch habe ich inzwischen schon ohne CODEA-Schiffe über 2 Seiten Scripts, die für jeden erdenklichen Zweck ein passendes Schiff erstellen und mir die entsprechenden Kosten vom Geld abziehen.

Mein Problem ist der Perfektionismus der dann durchkommt da bei mir am liebsten nur ein argonischer Pilot in einem argonischen Transporter in einer argonischen Station üblicherweise in einem argonischen Sektor arbeiten darf :headbang:
Das gleiche gilt natürlich für die anderen Rassen auch.
logischerweise bekommt der später fertig ausgebildete Kämpfer/ Händler /Techniker etc. ein entsprechend anderes, im Zweifelsfall größeres Schiff.

... ob ich eine argonische Station in einen paranidischen Sektor stellen würde in dem sich dann ein Split in ein boronisches Schiff zwängen muss? ... eher nicht xD


Zu meinem Anliegen Da das mit den Scripten inzwischen recht umfangreich ist und sich viele der Scripte sehr ähneln suche ich schon seit langem einen Weg, einige Scripte zusammenzufassen. Ich kann eine Variable erstellen die z.B. entweder den Sektoreigentümer oder eine von mir selbst gewählte Rasse beinhaltet.

Bisher habe ich vergeblich versucht, diese Variable dazu zu nutzen um z.B. per "GoTo" und "Label" innerhalb des Scriptes zu wandern. Leider habe ich auch das Konzept von Arrays nicht ganz begriffen oder zumindest hab ich keinen Dunst vom jeweiligen Syntax.

Im Script könnte das z.B. so aussehen, dass im Script 6 verschiedene Schiffe des Typs xxx Frachter (Merkur Frachter, Delfin Frachter, Kaiman Frachter etc.) erstellt würden jedoch wird nur die eine Zeile Ausgeführt, welche zur variablen Rasse passt oder dass eben nur 1 Schiffe erstellt wird und bei Schiffstyp nur die entsprechend generierte Variable steht welche weiter oben zurechtgefriemelt wird.
Die nachfolgende Ausrüstung etc. würde dann einfach unter allem stehen und in jedem Fall mit ausgeführt werden.


Ich hoffe ihr versteht was ich meine
Vielen Dank
X2return

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

Post by X2-Illuminatus » Tue, 14. Mar 17, 10:24

X2return wrote:Bisher habe ich vergeblich versucht, diese Variable dazu zu nutzen um z.B. per "GoTo" und "Label" innerhalb des Scriptes zu wandern. Leider habe ich auch das Konzept von Arrays nicht ganz begriffen oder zumindest hab ich keinen Dunst vom jeweiligen Syntax.
In unserer MSCI Reference in den General Commands werden die Label-Befehle (unter Flow-Control) und die Array-Befehle (unter Arrays) erklärt. Sollte hier etwas unklar sein, einfach nochmal nachfragen.

In dem von dir genannten Fall würde ich aber ganz ehrlich gar nicht zu Labels greifen, sondern einfach mit mehreren if-elseif-Anweisungen arbeiten. Vom Prinzip her:

Code: Select all

If $Volk == Argonen
  *Code um argonisches Schiff zu erstellen 
else if $Volk == Boronen
  *Code um boronisches Schiff zu erstellen
else if...
  .
  .
  .
end
(Angenommen hier natürlich, dass in der Variable $Volk eine Rasse gespeichert ist.)
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!

X2return
Posts: 363
Joined: Sat, 19. Nov 05, 22:54
x4

Post by X2return » Tue, 14. Mar 17, 23:37

X2-Illuminatus wrote:... In dem von dir genannten Fall würde ich aber ganz ehrlich gar nicht zu Labels greifen, sondern einfach mit mehreren if-elseif-Anweisungen arbeiten. Vom Prinzip her:

Code: Select all

If $Volk == Argonen
  *Code um argonisches Schiff zu erstellen 
else if $Volk == Boronen
  *Code um boronisches Schiff zu erstellen
else if...
  .
  .
  .
end
(Angenommen hier natürlich, dass in der Variable $Volk eine Rasse gespeichert ist.)
Servus X2I,
vielen Dank, das hat mir sehr geholfen. Ich hatte ne ganze Weile mit Arrays herumprobiert, weil ich das in vielen anderen Scripten gesehen habe worin es z.B. im die verschiedenen Typen von irgendwas ging - ist nie was bei rumgekommen.
Auf die Labels und GoTo ... kam ich durch eine Schulung für Microsoft Access oder so vor 20 Jahren - nir benutzt und daher das meißte vergessen.

Zunächst wurden mir zwar passende Schiffe erstellt aber alle leer, bis ich das "end" direkt unter die Abfragen gesetzt und den restlichen Code darunter gesetzt habe - so muss ich die Ausrüstung etc. nur einmal tippen und nicht für jedes Volk separat.

Eine Frage hätt ich noch.
Ich habe mit dem von Dir gezeigten Code jetzt die Hauptvölker abgefragt und funktioniert alles. Aber was wenn ich z.B. in einem Unbekannten Sektor, oder einem Spielereigenen bauen möchte?
Muss ich "if / else if" Bedingung für alle, in meinem Spiel existenten 19 Völker abfragen oder kann ich vorgehen wie z.B. in Excel "wenn(oder...;...);dann;sonst" also falls keine Bedingung erfüllt wird, ebenfalls eine bestimmte Wahl getroffen wird?

Hm, wenn ich die übrigen Völker einfach mit "OR" als weitere Bedingung anhänge?

Vielen Dank
X2return

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

Post by X2-Illuminatus » Thu, 16. Mar 17, 09:35

Muss ich "if / else if" Bedingung für alle, in meinem Spiel existenten 19 Völker abfragen oder kann ich vorgehen wie z.B. in Excel "wenn(oder...;...);dann;sonst" also falls keine Bedingung erfüllt wird, ebenfalls eine bestimmte Wahl getroffen wird?

Hm, wenn ich die übrigen Völker einfach mit "OR" als weitere Bedingung anhänge?
Statt "else if" kannst du als letzte Anweisung einfach "else" benutzen. Das benötigt dann keine extra Bedingung und fängt alle anderen Eingaben bzw. Werte der $Volk-Variable ab, die nicht in den vorher genutzten if-elseif-Bedingungen drin stecken.
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!

Post Reply

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