Codebefehle

Aus X-Lexikon
Zur Navigation springenZur Suche springen

Achtungzeichen.gif Achtung: 1.: Dieser Artikel behandelt die Codebefehle im X-internen Scripteditor. Zu anderen Scripteditoren ist bisher keine Übersicht erschienen.
2.: Die hier aufgeführten Befehle und Erläuterungen stammen aus dem Egosoft-Forum und gelten nur für . Für sind sie zwar ähnlich und meist, aber nicht immer identisch.

Codebefehle

General Commands

Script Calls

@ <RetVar/IF/START> <RefObj> call script <Script Name>:<Parameter>
Startet ein anderes Script mit eventuellen Parametern auf null oder lokal auf dem Referenz-Objekt
return <Value>
Beendet das Script und gibt eine Variable an das Elternscript zurück

Arrays

<RetVar> = array alloc: size=<Var/Number>
Erstellt ein Array mit X leeren Elementen
<RetVar/IF> <Var/Array>[<Var/Number>]
Holt das Arrayelement X und schreibt es in die Variable
<Var/Array>[<Var/Number>] = <Value>
Legt den Inhalt des Arrayelementes X fest
<RetVar> = size of array <Var/Array>
Gibt die Größe des Arrays zurück
<RetVar> = clone array <Var/Array>: index <Var/Number> ... <Var/Number>
Klont das Array - beide Arrayvariablen sind dannach unabhängig
copy array <Var/Array> index <Var/Number> ... <Var/Number> into array <Var/Array> at index <Var/Number>
Kopiert das Array - beide Arrayvariablen sind trotzdem noch miteinander verbunden (Änderung in 1 ändert auch in 2)
insert <Value> into array <Var/Array> at index <Var/Number>
Fügt ein Element an die Stelle X des Arrays ein
append <Value> to array <Var/Array>
Hängt ein Element an das Ende des Arrays an (Array wird automatisch vergrößert)
remove element from array <Var/Array> at index <Var/Number>
Entfernt das Element X aus dem Array
resize array <Var/Array> to <Var/Number>
Ändert die Größe des Arrays - hängt leere Elemente an bzw. löscht die letzten

Sonstige

<RetVar/IF><Expression>
Standard Befehl um Variablen zuzuweisen, Schleifen zu bauen und Abfragen zu gestalten
inc <RetVar> =
Erhöht die Variable um 1
dec <RetVar> =
Vermindert die Variable um 1
@ <RetVar/IF> wait <Var/Number> ms
Wartet X ms mit der Ausführung des Scriptes (Pflicht in größeren Scripten)
@ <RetVar/IF> wait randomly fo <Var/Number> to <Var/Number> ms
Wartet einen Zeitspanne von min bis max -1 ms
<Var> = random value from 0 to <Var/Number> -1
Generiert eine Zufallszahl zwischen 0 und X -1
<Var> = random value from <Var/Number> to <Var/Number> -1
Generiert eine Zufallszahl zwischen X und Y -1
*<Comment>
Kommentare (Pflicht für signierte Scripte)
<RetVar> = script engine version
Gibt die Scriptengine-Versionsnummer als integer zurück
<Var> = get script priority
Gibt die Priorität eines Scriptes zurück (höhere Prioritäten werden zuerst ausgeführt)
set script priority to <Var/Number>
Setzt die Priorität
<RetVar/IF> is script with prio <Var/Number> on stack
Überprüft ob ein Script mit der Priorität X auf diesem Objekt auf dem Stack liegt
<RefObj> interrupt with script < Script Name > and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value>
Unterbricht das laufende Script mit dem Script X und mit der Priorität Y
<RetVar/IF> get task id
Gibt die Tasknummer zurück
<RetVar/IF> get global task id
Gibt die globale Tasknummer zurück
<RefObj> interrupt with script <Script Name> and prio <Var/Number>
Unterbricht das laufende Script mit dem Script X und mit der Priorität Y
<RefObj> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number>
Verbindet ein Signal mit einem Script
<RefObj> set ship command/signal <Object Command/Signal>
<RefObj> ignore ship command/signal <Object Command/Signal>
enable signal/interrupt handling: <Var/Number>
<RetVar/IF> is signal/interrupt handling on
Fragt die signal und interrupt Behandlung ab (ob aktiv)
global ship map: set: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>,script=<Script Name>,prio=<Var/Number>
Verbindet ein Kommando mit einer Schiffklasse oder/und Rasse
global ship map: remove: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>
Entfernt die Verbindung
global ship map: ignore: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>
Ignoriert beim verbinden folgende Schiffsklassen und/oder Rassen
set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware>
Verbindet Kommandos mit Warenupgrades
<RetVar> = get ship command upgrade: command=<Object Command/Signal>
Gibt die Ware für ein Commando zurück
set script command: <Object Command/Signal>
<RetVar/IF> get script command
set script command target: <Value>
<RetVar/IF> get script command target
<RetVar> = datatyp[<Value>]
Gibt einen datentyp zurück
<RetVar/IF> is datatyp[<Value>] == <Var/Script Data Type>
Vergleicht, ob eine Variable einem bestimmten Datentyp entspricht
<RetVar> = read text: page=<Var/Number> id=<Var/Number>
Liest einen Textid aus einem XML-File
<RetVar> = sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value>
Fügt in einen String Variablen einen Platzhalter für die Variablen ist %s
<RetVar> = sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value>
Das selbe nur mit einem XML-File
load text: id=<Var/Number>
Läd einen XML-File
<RetVar> = state of news article: page=<Var/Number> id=<Var/Number>
set state of news article: page=<Var/Number> id=<Var/Number> to <Var/Number>
<RetVar/IF> system date is month=<Var/Number>,day=<Var/Number>
<RetVar> = playing time
Spielzeit als integer
infinite loop detection enabled=<Var/Number>
bricht unendliche schleifen ab!
set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name>
Verbindet Commandos mit Waren und prüft ob das Kommando (0 weg, 1 angezeigt, 2 ausgegraut) aktiv ist. Das wird durch den Rückgabewert des Scriptes bestimmt
<RefObj> set local variable: name=<Var/String> value=<Value>
setze eine locale Variable die auch von anderen Scripten ausgelesen werden kann
<RetVar/IF> <RefObj> get local variable: name=<Var/String>
liest sie aus
set global variable: name=<Var/String> value=<Value>
das ganze global
<RetVar/IF> get global variable: name=<Var/String>
ebenfalls global
al engine: register script = <script name>
KEINE BESCHREIBUNG
al engine: unregister script <script name>
KEINE BESCHREIBUNG
al engine: set plugin <value> description to <string>
KEINE BESCHREIBUNG
al engine: set plugin <value> timer interval to <number> s
KEINE BESCHREIBUNG
<RetVar/IF> = is plot <number> state flag <value>
Fragt ab wie der Plotstatus ist
<RetVar> = get script version
gibt die scriptversionsnr zurück
<RetVar> = get script name
gibt den Scriptnamen zurück
<RefObj> -> interrupt task <number> with script <script name> and prio <number>: arg1=<value> arg2=<value> arg3=<value> arg4=<value>
das selbe wie oben nur bei tasks
<RefObj> -> start task <number> with script <script name> and prio <number>: arg1=<value> arg2=<value> arg3=<value> arg4=<value> arg5=<value>
Startet einen task auf einem Objekt, diese laufen gleichzeitig nicht nacheinander
<RetVar/IF> = <RefObj> -> get tradeable ware array from station
gibt die Warenliste einer Station zurück
<RetVar/IF> = get Khaak aggression level
Wie böse sind die Khaak?
<RetVar/IF> = get random name: race=<race>
gibt einen zufälligen Namen einer Rasse zurück
set Khaak aggression level to <number>
Setzt die Boshaftigkeit der Khaak fest
switch level { case 0: break; case 100: ; break;} default = 20;
???

Audio Commands

play sample <Var/Number>
spielt das Soundsample X (Link zur Liste hier)
play sample: incoming transmission <Var/Number>, from object <Value>
spielt das "Eingehende Nachricht Sample"
<RefObj> send audio message <Var/Number> to player
spielt eine Audiomeldung ab (wie z.B. das "Bei der Königin" beim angreifen eines Boron-Schiffes)
send incoming message <Var/String> to player: display it=<Var/Number>
schickt eine Nachricht an den Spieler (ins Logbuch) wird auf Wunsch sofort angezeigt (display it=true)
<RetVar/IF/START> -> speak text: page=<number> id=<number> priority=<number>
ein Text aus der Sprach-XML wird gesprochen wenn der dazugehörige Sound vorhanden ist. Priorität geht von 0-99 und sollte 50 nicht übersteigen.

Logbook Commands

write to player logbook <Value>
schreibt einen Text in das Logbuch
write to player logbook: sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value>
wie oben, jedoch mit der Möglichkeit Variablen in den Text zu bringen ( '%s' wird später durch die Variable ersetzt)
write to player logbook: sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value>
wie oben jedoch wird der Text aus der Sprach-XML geholt
<RefObj> write to logbook <Value>
schreibt einen einfachen Wert in das Logbuch (keinen String/Text)
write to log file #<Var/Number> append=<Var/Number> value=<Value>
wie der Logbuchbefehl, nur wird der Text auf die Festplatte geschrieben (Datei "Log<Number>.txt"), Append=True fügt den Text an das Ende der Datei, False erstellt die Datei neu
write to log file #<Var/Number> append=<Var/Number> printf: fmt=<Var/String>, <Value>, <Value>, <Value>, <Value>, <Value>
der Logbuchbefehl, nur in eine externe Datei
write to log file #<Var/Number> append=<Var/Number>[/color] printf: pageid=<Var/Number> textid=<Var/Number>, <Value>, <Value>, <Value>, <Value>, <Value>
der Logbuchbefehl, nur in eine externe Datei

Fly Commands

@ <RetVar/IF> <RefObj> fly to home base
RefObj fliege zur Homebase
@ <RetVar/IF> <RefObj> fly to station <Var/Station>
RefObj fliegt zur Station
@ <RetVar/IF> <RefObj> fly to sector <Var/Sector>
RefObj fliegt zum Sektor
<RetVar/IF> <RefObj> find nearest enemy ship: max.dist=<Var/Number>
RefObj findet nächstes feindliches Schiff
<RetVar/IF> <RefObj> find nearest enemy station: max.dist=<Var/Number>
RefObj findet nächste feindliche Station
<RetVar/IF> <RefObj> fire lasers on target <Value> using turret <Var/Number>
RefObj feuere mit Geschützturm Y auf Ziel X
@ <RetVar/IF> <RefObj> turn turret <Var/Number> to target <Var/Ship/Station>: timeout=<Var/Number> ms
RefObj dreht Geschützturm auf Ziel X für Y ms
@ <RetVar/IF> <RefObj> attack run on target <Value>: timeout=<Var/Number> ms
RefObj beginne mit angriff auf Ziel X
@ <RetVar/IF> <RefObj> defensive move: type=<Var/Number>,intensity=<Var/Number>,timeout=<Var/Number> ms,avoid object=<Value>
RefObj fliege Verteidigungsmuster X Stärke Y unter annahme das das Objekt Z der Angreifer ist für I ms
@ <RetVar/IF> <RefObj> move to ware object <Value> for collecting: timeout=<Var/Number> ms
RefObj fliege zur fliegenden Ware für X ms
<RetVar/IF> <RefObj> catch ware object <Value>
RefObj sammle Ware auf
@ <RetVar/IF> <RefObj> move around <Var/Number> ms
RefObj fliegt rum
@ <RetVar/IF> <RefObj> escort ship <Var/Ship>
RefObj escortiere Schiff
@ <RetVar/IF> <RefObj> escort ship <Var/Ship>: timeout=<Var/Number> ms
RefObj eskortiere Schiff für X ms
<RefObj> set formation <Var/Number>
RefObj setze formation zu typ X
<RefObj> add to formation with leader <Var/Ship>
füge RefObj zur Formation mit Formationsführer X hinzu
<RefObj> remove from any formation
entferne RefObj von jeder Formation
<RetVar/IF> <RefObj> get formation leader
Gib den Formationsführer von RefObj zurück
<RetVar> = <RefObj> get formation follower ships
gibt die dem RefObj folgenden Schiffe zurück
START <RefObj> command <Object Command>: arg1=<Value>,arg2=<Value>,arg3=<Value>,arg4=<Value>
Starte Kommando X auf RefObj
<RefObj> send signal <Object Signal>: arg1=<Value>,arg2=<Value>,arg3=<Value>,arg4=<Value>
sende Signal X an RefObj
@ <RetVar/IF> <RefObj> follow object <Var/Ship> with precision <Var/Number> m
RefObj folge Schiff X mit Abstand Y
@ <RetVar/IF> <RefObj> follow <Var/Ship> with precision <Var/Number> m: timeout=<Var/Number> ms
selbe wie oben nur für Zeit Z ms
<RefObj> set follow mode <Var/Number>
setzte den Folgemodus von RefObj auf X
<RetVar/IF> <RefObj> get follow mode
lese den Folgemodus von RefObj aus


4.026 <RefObj> set destination to <Value> ...description: RefObj setze Ziel (sichbar in den Details) 4.027 <RetVar/IF> <RefObj> get destination ...description: lese das Ziel aus 4.028 <RefObj> set attack target to <Value> ...description: RefObj setze das Angriffsziel auf X (auslesbar) 4.029 <RetVar/IF> <RefObj> get attack target ...description: lese das Angriffsziel von RefObj aus 4.030 @ <RetVar/IF> <RefObj> move to position x= y= z= with precision m ...description: fliege zur Position X,Y und Z mit einer Genauigkeit von I 4.031 <RefObj> set command: <Object Command> ...description: RefObj setze sichbares Kommando auf X 4.032 <RetVar/IF> <RefObj> get command ...description: lese es aus 4.033 <RefObj> set command target: <Value> ...description: RefObj setzte Command target 1 auf X 4.034 <RetVar/IF> <RefObj> get command target ...description: lese das erste Commandtarget aus 4.035 <RefObj> set command target2: <Value> ...description: siehe oben nur zweites 4.036 <RetVar/IF> <RefObj> get command target2 ...description: siehe oben 4.037 <RetVar> = <RefObj> select new formation leader by: ship class= strength) min.speed= ...description: wähle einen neuen Formationleader für die Formation in der RefObj enthalten ist! 4.038 <RetVar/IF> <RefObj> has formation ships ...description: ist RefObj ein Formationsführer 4.039 <RefObj> give formation leadership to ...description: gibt der Formation in der RefObj Miglied ist den Formationsführer X 4.040 <RefObj> set tactical to 4.041 <RetVar> = <RefObj> get tactical 4.042 <RetVar/IF> get player tracking aim ...description: Gib das vom Spieler anvisierte Ziel zurück 4.043 <RetVar/IF> <RefObj> is in firing range of turret ...description: Ist Ziel X in Freuerreichweite von Geschützturm Y 4.044 <RetVar> = <RefObj> find enemy in firing range of turret ...description: RefObj finde Feind in Schußweite 4.045 <RefObj> set command: <Object Command> target=<Value> target2=<Value> par1=<Value> par2=<Value> ...description: setze Commando mit Target 1 und 2 und den Parametern 4.046 <RetVar/IF> <RefObj> fire missile on <Value> ...description: RegObj schießt ne Rakete ab 4.047 <RetVar/IF> <RefObj> get current missile ...description: die Ausgewählte Rakete von RefObj 4.048 <RetVar/IF> <RefObj> find best missile for target <Value> ...description: die beste Rakete für das Ziel X 4.049 <RetVar> = best missile type for target <Value> ...description: der Beste Raketentyp für das Ziel X 4.050 <RetVar/IF> <RefObj> launch fight drones: protect me or attack target=<Value> ...description: RefObj schmeißt Drohnen raus mit folgendem Kommando 4.051 <RetVar/IF> <RefObj> is missile ready to fire ...description: ist die Rakete abschuß bereit 4.052 <RetVar/IF> <RefObj> should a missile be fired ...description: soll eine Rakete abgefeuert werden 4.053 <RetVar> = <RefObj> get fire missile probability ...description: gibt die Prozentzahl zurück 4.054 <RetVar> = <RefObj>get fire missile time difference in seconds ...description: gibt die feuerrate der Raketen zurück in sekunden 4.055 <RefObj> set fire missile probability to ...description: setzt die Prozentzahl zu X 4.056 <RefObj> set fire missile time difference to s ...description: setzt die Feuerrate zu X in Sekunden 4.057 <RetVar/IF> <RefObj> fits laser into turret ...description: installiert einen vorhanden Laser in den Geschützturm X 4.058 <RetVar> = <RefObj> get max. number of lasers in turret ...description: die maximale Anzahl an Geschützen im Turm 4.059 <RetVar> = <RefObj> get laser type in turret at slot ...description: Gibt den Lasertyp eines bestimmten installierten Lasers zurück 4.060 <RetVar> = <RefObj> get number of turrets ...description: Anzahl der Türme 4.061 <RetVar> = get range of missile type ...description: Schußweite eines bestimmten Raketentypes 4.062 <RetVar> = <RefObj> find nearest missile aiming to me ...description: finde die nächste Rakete die auf RefObj zielt 4.063 <RetVar/IF> <RefObj> decouple ships ...description: für Khaakcluster: Schiffe entkoppeln 4.064 <RetVar/IF> <RefObj> is decoupled ships leader ...description: Für Khaakcluster: der Formationsführer nach dem entkoppeln 4.065 <RetVar/IF> <RefObj> get current galaxy flight timestep in ms ...description: keine Ahnung Very Happy 4.066 <RetVar/IF> <RefObj> is landing ...description: ist RefObj gelandet und wo 4.067 <RetVar/IF> <RefObj> is starting ...description: ist das RefObj gestartet 4.068 <RetVar/IF> <RefObj> use jump drive: target=<Value> ...description: RefObj springt in einen bestimmten Sektor (pos 0,0,0) oder aber in ein Gate 4.069 <RetVar/IF> <RefObj> needed jump drive energy for jump to sector ...description: EZ die für dein Sprung benötigt werden 4.070 <RetVar/IF> <RefObj> check, select and fire missile on <Value> ...description: RefObj machte einen Raketencheck und feuert die Rakete auf Zeil X 4.071 <RetVar/IF> = <RefObj> -> add big ship <dock> ...description: fügt das RefObj zum BigShipDock hinzu 4.072 <RetVar/IF> = <RefObj> -> has a free big ship dock slot ...description: fragt ab ob das Dock einen freien Bigshipplatz hat 4.073 <RetVar/IF> = <RefObj> -> can be controlled by race logic ...description: kann das Schiff von der KI kontrolliert werden. (das killt alle userscripte wenn die KI das schiff übernimmt) 4.074 <RefObj> -> set race logic control enabled to <boolean> ...description: Schaltet das KI kontrolliert Feature ab! ...description: if (enabled == false).....{ NPC ship of normal 5 races will not start doing it's own thing} 4.075 <RetVar/IF> = <RefObj> -> can execute StartAction ...description: kann das schiff einen defaultbefehl ausführen 4.076 <RefObj> -> set StartAction enabled to <boolean> ...description: Schalte dieses Feature an oder aus 4.077 set as player wingman: <ship> ...description: RefObj ist Flügenmann 4.078 <RetVar/IF> = <RefObj> -> is player wingman ...description: ist RefObj Flügelmann




Siehe auch

{{#ifeq:||

}}

{{#ifeq:||

}}