Codebefehle: Unterschied zwischen den Versionen
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 [[X²]]. Für [[X³]] 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> | |||
: Standard Befehl um Variablen zuzuweisen, Schleifen zu bauen und Abfragen zu gestalten | |||
; <nowiki>inc <RetVar> =</nowiki> | |||
: Erhöht die Variable um 1 | |||
; <nowiki>dec <RetVar> =</nowiki> | |||
: Vermindert die Variable um 1 | |||
; <nowiki>@ <RetVar/IF> wait <Var/Number> ms</nowiki> | |||
: 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> | |||
: Wartet einen Zeitspanne von min bis max -1 ms | |||
; <nowiki><Var> = random value from 0 to <Var/Number> -1</nowiki> | |||
: Generiert eine Zufallszahl zwischen 0 und X -1 | |||
; <nowiki><Var> = random value from <Var/Number> to <Var/Number> -1</nowiki> | |||
: Generiert eine Zufallszahl zwischen X und Y -1 | |||
; <nowiki>*<Comment></nowiki> | |||
: Kommentare (Pflicht für signierte Scripte) | |||
; <nowiki><RetVar> = script engine version</nowiki> | |||
: Gibt die Scriptengine-Versionsnummer als integer zurück | |||
; <nowiki><Var> = get script priority</nowiki> | |||
: Gibt die Priorität eines Scriptes zurück (höhere Prioritäten werden zuerst ausgeführt) | |||
; <nowiki>set script priority to <Var/Number></nowiki> | |||
: Setzt die Priorität | |||
; <nowiki><RetVar/IF> is script with prio <Var/Number> on stack</nowiki> | |||
: Ü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> | |||
: Unterbricht das laufende Script mit dem Script X und mit der Priorität Y | |||
; <nowiki><RetVar/IF> get task id</nowiki> | |||
: Gibt die Tasknummer zurück | |||
; <nowiki><RetVar/IF> get global task id</nowiki> | |||
: Gibt die globale Tasknummer zurück | |||
; <nowiki><RefObj> interrupt with script <Script Name> and prio <Var/Number></nowiki> | |||
: 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> | |||
: Verbindet ein Signal mit einem Script | |||
; <nowiki><RefObj> set ship command/signal <Object Command/Signal></nowiki> | |||
; <nowiki><RefObj> ignore ship command/signal <Object Command/Signal></nowiki> | |||
; <nowiki>enable signal/interrupt handling: <Var/Number></nowiki> | |||
; <nowiki><RetVar/IF> is signal/interrupt handling on</nowiki> | |||
: 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> | |||
: Verbindet ein Kommando mit einer Schiffklasse oder/und Rasse | |||
; <nowiki>global ship map: remove: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race></nowiki> | |||
: Entfernt die Verbindung | |||
; <nowiki>global ship map: ignore: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race></nowiki> | |||
: Ignoriert beim verbinden folgende Schiffsklassen und/oder Rassen | |||
; <nowiki>set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware></nowiki> | |||
: Verbindet Kommandos mit Warenupgrades | |||
; <nowiki><RetVar> = get ship command upgrade: command=<Object Command/Signal></nowiki> | |||
: Gibt die Ware für ein Commando zurück | |||
; <nowiki>set script command: <Object Command/Signal></nowiki> | |||
; <nowiki><RetVar/IF> get script command</nowiki> | |||
; <nowiki>set script command target: <Value></nowiki> | |||
; <nowiki><RetVar/IF> get script command target</nowiki> | |||
; <nowiki><RetVar> = datatyp[<Value>]</nowiki> | |||
: Gibt einen datentyp zurück | |||
; <nowiki><RetVar/IF> is datatyp[<Value>] == <Var/Script Data Type></nowiki> | |||
: Vergleicht, ob eine Variable einem bestimmten Datentyp entspricht | |||
; <nowiki><RetVar> = read text: page=<Var/Number> id=<Var/Number></nowiki> | |||
: Liest einen Textid aus einem XML-File | |||
; <nowiki><RetVar> = sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value></nowiki> | |||
: Fügt in einen String Variablen einen Platzhalter für die Variablen ist %s | |||
; <nowiki><RetVar> = sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value></nowiki> | |||
: Das selbe nur mit einem XML-File | |||
; <nowiki>load text: id=<Var/Number></nowiki> | |||
: Läd einen XML-File | |||
; <nowiki><RetVar> = state of news article: page=<Var/Number> id=<Var/Number></nowiki> | |||
; <nowiki>set state of news article: page=<Var/Number> id=<Var/Number> to <Var/Number></nowiki> | |||
; <nowiki><RetVar/IF> system date is month=<Var/Number>,day=<Var/Number></nowiki> | |||
; <nowiki><RetVar> = playing time</nowiki> | |||
: Spielzeit als integer | |||
; <nowiki>infinite loop detection enabled=<Var/Number></nowiki> | |||
: bricht unendliche schleifen ab! | |||
; <nowiki>set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name></nowiki> | |||
: 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
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
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:||
}}
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:||
}}