<RetVar/IF> is marine: passenger/astronaut=<Var/Passenger>

This forum serves as MSCI Reference at EGOSOFT. It's Read-Only for non MSCI Group members.

Moderators: Scripting / Modding Moderators, MSCI Moderators

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

<RetVar/IF> is marine: passenger/astronaut=<Var/Passenger>

Post by X2-Illuminatus » Fri, 25. Feb 11, 18:17

[skip|else] if [not]|while [not]| <RetVar/IF> is marine: passenger/astronaut=<Var/Passenger>


[skip|else] if [not]|while [not]| = The possible 'Conditional' statements that can be used with this command.
<RetVar/IF> = Use a variable, if the command should return information. If a variable is used, the command will return 1 on success and 0 on failure.
<Var/Passenger> = The object you want to check, if it's a marine. 'Valid' objects are passengers and astronauts.


This command checks if the as <RefObj> selected passenger or astronaut is a marine.


Example:

You might be involved in a fight including boarding ships. After the fight a lot of astronauts are floating in space. Now you may want to check automatically, if those astronauts are marines. For the following example the variable $sector should contain the sector you wish to check.

$marines.arr = array alloc: size=0
$ship.arr = $sector -> get ship array from sector/ship/station
$size.ship.arr = size of array $ship.arr
while $size.ship.arr
|dec $size.ship.arr =
|$ship = $ship.arr[$size.ship.arr]
|$objectclass = $ship -> get object class
|if $objectclass == Astronaut
||if is marine: passenger/astronaut=$ship
|||append $ship to array $marines.arr
||end
|end
end

This example gets all ships in the selected sector (including astronauts), checks if the astronauts are marines and adds them to an array. Afterwards the array $marines.arr contains all marines in the current sector. Now you could command them to fly to one of your ships or collect them.


Note:

After ejecting a marine he will fly as an astronaut to the next friendly station in the current sector. If there is no station he simply stands still in space. After a failed boarding attempt the marine will fly to his homeship. Astronauts have to be referenced as ships.


Command Location:

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

[TiP][49] 297425

Post by X2-Illuminatus » Wed, 2. Mar 11, 13:45

[skip|else] if [not]|while [not]| <RetVar/IF> is marine: passenger/astronaut=<Var/Passenger>


[skip|else] if [not]|while [not]| = Die möglichen bedingten Anweisungen, die mit diesem Befehl genutzt werden können.
<RetVar/IF> = Nutze eine Variable, wenn der Befehl eine Information zurückgeben soll. Wenn eine Variable genutzt wird, wird sie 1 im Erfolgs- und 0 im Fehlerfall enthalten.
<Var/Passenger> = Das Objekt, von dem du wissen möchtest, ob es ein Marineinfanterist ist. 'Zulässige' Objekte sind Passagiere und Astronauten.


Dieser Befehl überprüft, ob der als <RefObj> ausgewählte Passagier oder Astronaut ein Marineinfanterist ist.


Beispiel:

Du warst möglicherweise an einem Kampf beteiligt, in dem du auch Schiffe geentert hast. Nach dem Kampf fliegen eine Menge Astronauten im Raum herum. Du möchtest nun automatisch überprüfen, ob diese Astronauten Marineinfanteristen sind. Für das folgende Beispiele sollte die Variable $sector den Sektor, den du überprüfen möchtest, enthalten.

$marines.arr = array alloc: size=0
$ship.arr = $sector -> get ship array from sector/ship/station
$size.ship.arr = size of array $ship.arr
while $size.ship.arr
|dec $size.ship.arr =
|$ship = $ship.arr[$size.ship.arr]
|$objectclass = $ship -> get object class
|if $objectclass == Astronaut
||if is marine: passenger/astronaut=$ship
|||append $ship to array $marines.arr
||end
|end
end

Dieses Beispiel erfasst alle Schiffe (einschließlich Astronauten) im gewählten Sektor, überprüft, ob die Astronauten Marineinfanteristen sind und fügt sie zu einem Array hinzu. Danach enthält das Array $marines.arr alle Marineinfanteristen im entsprechenden Sektor. Nun könnte man über das Array, den Astronauten einzeln Befehle erteilen oder sie einsammeln lassen.


Beachte:

Nach dem Auswurf eines Marineinfanteristen wird er als Astronaut zur nächsten freundlichen Station im aktuellen Sektor fliegen. Ist keine entsprechende Station vorhanden, verharrt er an Ort und Stelle. Nach einem fehlgeschlagenen Enterversuch wird ein Marineinfanterist zu seinem Heimatschiff fliegen. Astronauten müssen wie Schiffe referenziert werden.


Zu finden unter:

Locked

Return to “MSCI Reference”