Codebefehle
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 X². Für X³ 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:||
}}
Hauptthemen: Scripts und Modding - Hauptseite | Nutzung von Scripts und Mods | Erstellen von Scripts und Mods
Was ist... Scripting? | Modding? | Mapping? || Tutorialübersichten: Scripting | Modding | Mapping | Tutorials: X³: TC Scripting-Tutorial | Mapping in X³
{{#ifeq:||
}}