Codebefehle: Unterschied zwischen den Versionen

Aus X-Lexikon
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{HinweisBox|'''1.:''' Dieser Artikel behandelt die Codebefehle im [[Scripteditor|X-internen Scripteditor]]. Zu anderen Scripteditoren ist bisher keine Übersicht erschienen.
{{HinweisBox|'''1.:''' Dieser Artikel behandelt die Codebefehle im [[Scripteditor|X-internen Scripteditor]]. Zu anderen Scripteditoren ist bisher keine Übersicht erschienen.
<br>'''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 ähnlich und meist, aber nicht immer identisch.}}
<br>'''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=
=Codebefehle=
==General Commands==
==General Commands==
Zeile 29: Zeile 29:
; <nowiki>resize array <Var/Array> to <Var/Number></nowiki>
; <nowiki>resize array <Var/Array> to <Var/Number></nowiki>
: Ändert die Größe des Arrays - hängt leere Elemente an bzw. löscht die letzten
: Ändert die Größe des Arrays - hängt leere Elemente an bzw. löscht die letzten
==Sonstige==
===Sonstige===
 
; <nowiki><RetVar/IF><Expression></nowiki>
1.001 <RetVar/IF><Expression>
: Standard Befehl um Variablen zuzuweisen, Schleifen zu bauen und Abfragen zu gestalten
...description: Standard Befehl um Variablen zuzuweisen, Schleifen zu bauen und Abfragen zu gestalten
; <nowiki>inc <RetVar> =</nowiki>
1.002 inc <RetVar> =
: Erhöht die Variable um 1
...description: erhöht die Variable um 1
; <nowiki>dec <RetVar> =</nowiki>
1.003 dec <RetVar> =
: Vermindert die Variable um 1
...description: vermindert die Variable um 1
; <nowiki>@ <RetVar/IF> wait <Var/Number> ms</nowiki>
1.004 @ <RetVar/IF> wait <Var/Number> ms
: Wartet X ms mit der Ausführung des Scriptes (Pflicht in größeren Scripten)
...description: wartet X ms mit der ausführung des scriptes (pflicht in größeren Scripten)
; <nowiki>@ <RetVar/IF> wait randomly fo <Var/Number> to <Var/Number> ms</nowiki>
1.005 @ <RetVar/IF> wait randomly fo <Var/Number> to <Var/Number> ms
: Wartet einen Zeitspanne von min bis max -1 ms
...description: wartet einen Zeitspanne von min bis max -1 ms
; <nowiki><Var> = random value from 0 to <Var/Number> -1</nowiki>
1.006 <Var> = random value from 0 to <Var/Number> -1
: Generiert eine Zufallszahl zwischen 0 und X -1
...description: generiert eine Zufallszahl zwichen 0 und X -1
; <nowiki><Var> = random value from <Var/Number> to <Var/Number> -1</nowiki>
1.007 <Var> = random value from <Var/Number> to <Var/Number> -1
: Generiert eine Zufallszahl zwischen X und Y -1
...description: generiert eine Zufallszahl zwischen X und Y -1
; <nowiki>*<Comment></nowiki>
1.008 *<Comment>
: Kommentare (Pflicht für signierte Scripte)
...description: Kommentare (pflicht für signierte Scripte )
; <nowiki><RetVar> = script engine version</nowiki>
1.009 <RetVar> = script engine version
: Gibt die Scriptengine-Versionsnummer als integer zurück
...description: gibt die Scriptengine versionsnr als integer zurück
; <nowiki><Var> = get script priority</nowiki>
1.010 <Var> = get script priority
: Gibt die Priorität eines Scriptes zurück (höhere Prioritäten werden zuerst ausgeführt)
...description: gibt die Priorität eines Scriptes zurück (höhere Prioritäten werden zuerst ausgeführt)
; <nowiki>set script priority to <Var/Number></nowiki>
1.011 set script priority to <Var/Number>
: Setzt die Priorität
...description: setzt die Priorität
; <nowiki><RetVar/IF> is script with prio <Var/Number> on stack</nowiki>
1.012 <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
...description: überprüft ob ein Script mit der Priorität X auf diesem Objekt auf dem Stack liegt
; <nowiki><RefObj> interrupt with script < Script Name > and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value></nowiki>
1.0121 <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
...description: unterbricht das laufende Script mit dem Script X und mit der Priorität Y
; <nowiki><RetVar/IF> get task id</nowiki>
1.013 <RetVar/IF> get task id
: Gibt die Tasknummer zurück
...description: gibt die Tasknummer zurück
; <nowiki><RetVar/IF> get global task id</nowiki>
1.014 <RetVar/IF> get global task id
: Gibt die globale Tasknummer zurück
...description: gibt die globale Tasknummer zurück
; <nowiki><RefObj> interrupt with script <Script Name> and prio <Var/Number></nowiki>
1.015 <RefObj> interrupt with script <Script Name> and prio <Var/Number>
: Unterbricht das laufende Script mit dem Script X und mit der Priorität Y
...description: unterbricht das laufende Script mit dem Script X und mit der Priorität Y
; <nowiki><RefObj> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number></nowiki>
1.016 <RefObj> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number>
: Verbindet ein Signal mit einem Script
...description: verbindet ein Signal mit einem Script
; <nowiki><RefObj> set ship command/signal <Object Command/Signal></nowiki>
1.017 <RefObj> set ship command/signal <Object Command/Signal>
; <nowiki><RefObj> ignore ship command/signal <Object Command/Signal></nowiki>
1.018 <RefObj> ignore ship command/signal <Object Command/Signal>
; <nowiki>enable signal/interrupt handling: <Var/Number></nowiki>
1.019 enable signal/interrupt handling: <Var/Number>
; <nowiki><RetVar/IF> is signal/interrupt handling on</nowiki>
1.020 <RetVar/IF> is signal/interrupt handling on
: Fragt die signal und interrupt Behandlung ab (ob aktiv)
...description: fragt die signal und interrupt Behandlung ab (ob aktiv)
; <nowiki>global ship map: set: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>,script=<Script Name>,prio=<Var/Number></nowiki>
1.021 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
...description: Verbindet ein Commando mit einer Schiffklasse oder/und race
; <nowiki>global ship map: remove: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race></nowiki>
1.022 global ship map: remove: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>
: Entfernt die Verbindung
...description: entfernt die verbindung
; <nowiki>global ship map: ignore: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race></nowiki>
1.023 global ship map: ignore: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>
: Ignoriert beim verbinden folgende Schiffsklassen und/oder Rassen
...description: ignoriert beim verbinden folgende Schiffsklassen und/oder Rassen
; <nowiki>set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware></nowiki>
1.024 set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware>
: Verbindet Kommandos mit Warenupgrades
...description: verbindet Commandos mit Warenupgrades
; <nowiki><RetVar> = get ship command upgrade: command=<Object Command/Signal></nowiki>
1.025 <RetVar> = get ship command upgrade: command=<Object Command/Signal>
: Gibt die Ware für ein Commando zurück
...description: gibt die Ware für ein Commando zurück
; <nowiki>set script command: <Object Command/Signal></nowiki>
1.026 set script command: <Object Command/Signal>
; <nowiki><RetVar/IF> get script command</nowiki>
1.027 <RetVar/IF> get script command
; <nowiki>set script command target: <Value></nowiki>
1.028 set script command target: <Value>
; <nowiki><RetVar/IF> get script command target</nowiki>
1.029 <RetVar/IF> get script command target
; <nowiki><RetVar> = datatyp[<Value>]</nowiki>
1.030 <RetVar> = datatyp[<Value>]
: Gibt einen datentyp zurück
...description: gibt einen datentyp zurück
; <nowiki><RetVar/IF> is datatyp[<Value>] == <Var/Script Data Type></nowiki>
1.031 <RetVar/IF> is datatyp[<Value>] == <Var/Script Data Type>
: Vergleicht, ob eine Variable einem bestimmten Datentyp entspricht
...description: vergleicht ob eine Variable einem bestimmten datentyp entspricht
; <nowiki><RetVar> = read text: page=<Var/Number> id=<Var/Number></nowiki>
1.032 <RetVar> = read text: page=<Var/Number> id=<Var/Number>
: Liest einen Textid aus einem XML-File
...description: liest einen Textid aus einem XML-File
; <nowiki><RetVar> = sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value></nowiki>
1.033 <RetVar> = sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value>
: Fügt in einen String Variablen einen Platzhalter für die Variablen ist %s
...description: fügt in einen String Variablen ein platzhalter für die Variablen ist %s
; <nowiki><RetVar> = sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value></nowiki>
1.034 <RetVar> = sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value>
: Das selbe nur mit einem XML-File
...description: das selbe nur mit einem XML-File
; <nowiki>load text: id=<Var/Number></nowiki>
1.035 load text: id=<Var/Number>
: Läd einen XML-File
...description: läd einen XML-File
; <nowiki><RetVar> = state of news article: page=<Var/Number> id=<Var/Number></nowiki>
1.036 <RetVar> = state of news article: page=<Var/Number> id=<Var/Number>
; <nowiki>set state of news article: page=<Var/Number> id=<Var/Number> to <Var/Number></nowiki>
1.037 set state of news article: page=<Var/Number> id=<Var/Number> to <Var/Number>
; <nowiki><RetVar/IF> system date is month=<Var/Number>,day=<Var/Number></nowiki>
1.038 <RetVar/IF> system date is month=<Var/Number>,day=<Var/Number>
; <nowiki><RetVar> = playing time</nowiki>
1.039 <RetVar> = playing time
: Spielzeit als integer
...description: spielzeit als integer
; <nowiki>infinite loop detection enabled=<Var/Number></nowiki>
1.040 infinite loop detection enabled=<Var/Number>
: bricht unendliche schleifen ab!
...description: bricht unendliche schleifen ab!
; <nowiki>set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name></nowiki>
1.041 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
...description: 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=<Var/String> value=<Value>
1.042 <RefObj> set local variable: name=<Var/String> value=<Value>
...description: setze eine locale Variable die auch von anderen Scripten ausgelesen werden kann
...description: setze eine locale Variable die auch von anderen Scripten ausgelesen werden kann

Version vom 8. Juli 2006, 19:41 Uhr

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:||

}}