Suche Script, der eine Schiffsklasse von einer Rasse, im Uni killt

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
thomas1205
Posts: 98
Joined: Fri, 27. Apr 07, 05:39
x3tc

Suche Script, der eine Schiffsklasse von einer Rasse, im Uni killt

Post by thomas1205 » Tue, 26. Mar 13, 10:54

Hallo Gemeinde,

ich suche wie im Titel beschrieben einen Script, der von einer Rasse eine gewählte Schiffsklasse komplett aus dem Uni killt. Hier mal mein Versuch, funktioniert leider gar nicht!

Code: Select all

001   $AnzSek = 0
002   $MaxX = get max sectors in x direction
003   $MaxY = get max sectors in y direction
004   
005   $x = 0
006   while $x < $MaxX
007   |$y = 0
008   |while $y < $MaxY
009   ||$Sek = get sector from universe index: x=$x, y=$y
010   ||if $Sek != null
011   |||$AnzSek = $AnzSek + 1
012   |||if $kill2 != null
013   ||||$kill2 = $kill2 + 1
014   ||||$kill2 = find ship: sector=$Sek class or type=M5 race=Boronen flags=0 refobj=0 maxdist=0 maxnum=0 refpos=null
015   ||||$kill2 ->destruct: show no explosion=[TRUE]
016   ||||$kill2 = $kill2 + 1
017   |||end
018   ||end
019   ||$y = $y + 1
020   |end
021   |$x = $x + 1
022   end
023   return null
Vielleicht könntet ihr mir mal wieder helfen...

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

Post by X2-Illuminatus » Tue, 26. Mar 13, 11:38

Mit dem Befehl <RetVar> = get ship array: of race <Var/Race> class/type=<Value> (zu finden in den Universe and Sector Commands) erhälst du alle Schiffe einer Klasse oder eines Schiffstyps und eines Volkes in einem Array. Anschließend musst du das Array nur noch durchlaufen und jedes Element darin zerstören.

Das könnte z.B. wie folgt aussehen:

Code: Select all

001   $ship.arr =  get ship array: of race Boron class/type=M5
002   $size = size of array $ship.arr
003   while $size
004   |dec $size = 
005   |$ship = $ship.arr[$size]
006   |$ship ->destruct: show no explosion=[TRUE]
007   end
008   return null

Was deinen Code ganz allgemein angeht, so wird der eigentliche "finden und zerstören"-Teil nie ausgeführt werden, da deiner Variable "$kill2" kein Wert zugewiesen ist und somit die entsprechende If-Abfrage nie durchlaufen wird. Zeilen wie

Code: Select all

$y = $y + 1
kann man auch mit

Code: Select all

inc $y = 
ersetzen. Die Variable $AnzSek wird nicht verwendet, wodurch die Zeilen 1 und 11 unnötig sind. Die Zeile

Code: Select all

$kill2 = find ship: sector=$Sek class or type=M5 race=Boronen flags=0 refobj=0 maxdist=0 maxnum=0 refpos=null
wird zudem immer nur ein Schiff finden. Damit mehrere gefunden werden, musst du unter flags [Find.Multiple] angeben und als maxnum (maximale Anzahl an Schiffen, die gefunden wird) eine Zahl größer 0 eintragen.
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!

thomas1205
Posts: 98
Joined: Fri, 27. Apr 07, 05:39
x3tc

Post by thomas1205 » Tue, 26. Mar 13, 12:14

Danke für deine schnelle Antwort, funzt!
Wie kann ich mir ins Logbuch schreiben lassen, wie viele Schiff zerstört wurden?
Und mal ne andere Frage, wie kann ich den Titeltext editieren, wenn ein Problem gelöst ist?

Danke dir

Thomas

User avatar
ubuntufreakdragon
Posts: 5198
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Tue, 26. Mar 13, 12:35

write to player logbook <Value>
Oben rechts an jedem deiner Beiträge klebt son Editbutton.
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Tue, 26. Mar 13, 17:15

ich bin mal so frei das Script von X2 mit der Logmöglichkeit die ubuntu aufgezeigt hat auf die effizienteste art zu erweitern:

001 $ship.arr = get ship array: of race Boron class/type=M5
002 $size = size of array $ship.arr
000 write to player logbook: $size
003 while $size
004 |dec $size =
005 |$ship = $ship.arr[$size]
006 |$ship ->destruct: show no explosion=[TRUE]
007 end
008 return null

sonst nimmst du möglicherweise unnötig noch ne zusätzliche Zählervariable ^^
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 ;)

thomas1205
Posts: 98
Joined: Fri, 27. Apr 07, 05:39
x3tc

Post by thomas1205 » Tue, 26. Mar 13, 21:18

Danke euch allen klappt jetzt so wie ich es wollte.
Kennt sich jemand von euch mit C++ bzw. KC aus???

Grüße Thomas

User avatar
ubuntufreakdragon
Posts: 5198
Joined: Thu, 23. Jun 11, 14:57
x4

Post by ubuntufreakdragon » Tue, 26. Mar 13, 22:17

C++ ich ein wenig, was genau?
My X3 Mods

XRebirth, things left to patch:
In General; On Firing NPC's; In De Vries; Out Of Zone; And the Antiwishlist

Post Reply

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