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

1.042 <RefObj> set local variable: name= value=<Value> ...description: setze eine locale Variable die auch von anderen Scripten ausgelesen werden kann 1.043 <RetVar/IF> <RefObj> get local variable: name= ...description: liest sie aus 1.044 set global variable: name= value=<Value> ...description: das ganze global 1.045 <RetVar/IF> get global variable: name= ...description: ebenfalls global 1.046 al engine: register script = <script name> ...description: KEINE BESCHREIBUNG 1.047 al engine: unregister script <script name> ...description: KEINE BESCHREIBUNG 1.048 al engine: set plugin <value> description to <string> ...description: KEINE BESCHREIBUNG 1.049 al engine: set plugin <value> timer interval to <number> s ...description: KEINE BESCHREIBUNG 1.050 <RetVar/IF> = is plot <number> state flag <value> ...description: Fragt ab wie der Plotstatus ist 1.051 <RetVar> = get script version ...description: gibt die scriptversionsnr zurück 1.052 <RetVar> = get script name ...description: gibt den Scriptnamen zurück 1.053 <RefObj> -> interrupt task <number> with script <script name> and prio <number>: arg1=<value> arg2=<value> arg3=<value> arg4=<value> ...description: das selbe wie oben nur bei tasks 1.054 <RefObj> -> start task <number> with script <script name> and prio <number>: arg1=<value> arg2=<value> arg3=<value> arg4=<value> arg5=<value> ...description: Startet einen task auf einem Objekt, diese laufen gleichzeitig nicht nacheinander 1.055 <RetVar/IF> = <RefObj> -> get tradeable ware array from station ...description: gibt die Warenliste einer Station zurück 1.056 <RetVar/IF> = get Khaak aggression level ...description: Wie böse sind die Khaak? 1.057 <RetVar/IF> = get random name: race=<race> ...description: gibt einen zufälligen Namen einer rasse zurück 1.058 set Khaak aggression level to <number> ...description: switch level { case 0: break; case 100: ; break;} default = 20;




Siehe auch

{{#ifeq:||

}}

{{#ifeq:||

}}