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 ähnlich und meist, aber nicht immer identisch.}} | ||
=Codebefehle= | |||
==General Commands== | |||
===Script Calls=== | |||
; <nowiki>@ <RetVar/IF/START> <RefObj> call script <Script Name>:<Parameter></nowiki> | |||
: Startet ein anderes Script mit eventuellen Parametern auf null oder lokal auf dem Referenz-Objekt | |||
; <nowiki>return <Value></nowiki> | |||
: Beendet das Script und gibt eine Variable an das Elternscript zurück | |||
===Arrays=== | |||
; <nowiki><RetVar> = array alloc: size=<Var/Number></nowiki> | |||
: Erstellt ein Array mit X leeren Elementen | |||
; <nowiki><RetVar/IF> <Var/Array>[<Var/Number>]</nowiki> | |||
: Holt das Arrayelement X und schreibt es in die Variable | |||
; <nowiki><Var/Array>[<Var/Number>] = <Value></nowiki> | |||
: Legt den Inhalt des Arrayelementes X fest | |||
; <nowiki><RetVar> = size of array <Var/Array></nowiki> | |||
: Gibt die Größe des Arrays zurück | |||
; <nowiki><RetVar> = clone array <Var/Array>: index <Var/Number> ... <Var/Number></nowiki> | |||
: Klont das Array - beide Arrayvariablen sind dannach unabhängig | |||
; <nowiki>copy array <Var/Array> index <Var/Number> ... <Var/Number> into array <Var/Array> at index <Var/Number></nowiki> | |||
: Kopiert das Array - beide Arrayvariablen sind trotzdem noch miteinander verbunden (Änderung in 1 ändert auch in 2) | |||
; <nowiki>insert <Value> into array <Var/Array> at index <Var/Number></nowiki> | |||
: Fügt ein Element an die Stelle X des Arrays ein | |||
; <nowiki>append <Value> to array <Var/Array></nowiki> | |||
: Hängt ein Element an das Ende des Arrays an (Array wird automatisch vergrößert) | |||
; <nowiki>remove element from array <Var/Array> at index <Var/Number></nowiki> | |||
: Entfernt das Element X aus dem Array | |||
; <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 | |||
==Sonstige== | |||
1.001 <RetVar/IF><Expression> | |||
...description: Standard Befehl um Variablen zuzuweisen, Schleifen zu bauen und Abfragen zu gestalten | |||
1.002 inc <RetVar> = | |||
...description: erhöht die Variable um 1 | |||
1.003 dec <RetVar> = | |||
...description: vermindert die Variable um 1 | |||
1.004 @ <RetVar/IF> wait <Var/Number> ms | |||
...description: wartet X ms mit der ausführung des scriptes (pflicht in größeren Scripten) | |||
1.005 @ <RetVar/IF> wait randomly fo <Var/Number> to <Var/Number> ms | |||
...description: wartet einen Zeitspanne von min bis max -1 ms | |||
1.006 <Var> = random value from 0 to <Var/Number> -1 | |||
...description: generiert eine Zufallszahl zwichen 0 und X -1 | |||
1.007 <Var> = random value from <Var/Number> to <Var/Number> -1 | |||
...description: generiert eine Zufallszahl zwischen X und Y -1 | |||
1.008 *<Comment> | |||
...description: Kommentare (pflicht für signierte Scripte ) | |||
1.009 <RetVar> = script engine version | |||
...description: gibt die Scriptengine versionsnr als integer zurück | |||
1.010 <Var> = get script priority | |||
...description: gibt die Priorität eines Scriptes zurück (höhere Prioritäten werden zuerst ausgeführt) | |||
1.011 set script priority to <Var/Number> | |||
...description: setzt die Priorität | |||
1.012 <RetVar/IF> is script with prio <Var/Number> on stack | |||
...description: überprüft ob ein Script mit der Priorität X auf diesem Objekt auf dem Stack liegt | |||
1.0121 <RefObj> interrupt with script < Script Name > and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value> | |||
...description: unterbricht das laufende Script mit dem Script X und mit der Priorität Y | |||
1.013 <RetVar/IF> get task id | |||
...description: gibt die Tasknummer zurück | |||
1.014 <RetVar/IF> get global task id | |||
...description: gibt die globale Tasknummer zurück | |||
1.015 <RefObj> interrupt with script <Script Name> and prio <Var/Number> | |||
...description: unterbricht das laufende Script mit dem Script X und mit der Priorität Y | |||
1.016 <RefObj> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number> | |||
...description: verbindet ein Signal mit einem Script | |||
1.017 <RefObj> set ship command/signal <Object Command/Signal> | |||
1.018 <RefObj> ignore ship command/signal <Object Command/Signal> | |||
1.019 enable signal/interrupt handling: <Var/Number> | |||
1.020 <RetVar/IF> is signal/interrupt handling on | |||
...description: fragt die signal und interrupt Behandlung ab (ob aktiv) | |||
1.021 global ship map: set: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race>,script=<Script Name>,prio=<Var/Number> | |||
...description: Verbindet ein Commando mit einer Schiffklasse oder/und race | |||
1.022 global ship map: remove: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race> | |||
...description: entfernt die verbindung | |||
1.023 global ship map: ignore: key=<Object Command/Signal>,class=<Var/Class>,race=<Var/Race> | |||
...description: ignoriert beim verbinden folgende Schiffsklassen und/oder Rassen | |||
1.024 set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> | |||
...description: verbindet Commandos mit Warenupgrades | |||
1.025 <RetVar> = get ship command upgrade: command=<Object Command/Signal> | |||
...description: gibt die Ware für ein Commando zurück | |||
1.026 set script command: <Object Command/Signal> | |||
1.027 <RetVar/IF> get script command | |||
1.028 set script command target: <Value> | |||
1.029 <RetVar/IF> get script command target | |||
1.030 <RetVar> = datatyp[<Value>] | |||
...description: gibt einen datentyp zurück | |||
1.031 <RetVar/IF> is datatyp[<Value>] == <Var/Script Data Type> | |||
...description: vergleicht ob eine Variable einem bestimmten datentyp entspricht | |||
1.032 <RetVar> = read text: page=<Var/Number> id=<Var/Number> | |||
...description: liest einen Textid aus einem XML-File | |||
1.033 <RetVar> = sprintf: fmt=<Var/String>,<Value>,<Value>,<Value>,<Value>,<Value> | |||
...description: fügt in einen String Variablen ein platzhalter für die Variablen ist %s | |||
1.034 <RetVar> = sprintf: pageid=<Var/Number> textid=<Var/Number>,<Value>,<Value>,<Value>,<Value>,<Value> | |||
...description: das selbe nur mit einem XML-File | |||
1.035 load text: id=<Var/Number> | |||
...description: läd einen XML-File | |||
1.036 <RetVar> = state of news article: page=<Var/Number> id=<Var/Number> | |||
1.037 set state of news article: page=<Var/Number> id=<Var/Number> to <Var/Number> | |||
1.038 <RetVar/IF> system date is month=<Var/Number>,day=<Var/Number> | |||
1.039 <RetVar> = playing time | |||
...description: spielzeit als integer | |||
1.040 infinite loop detection enabled=<Var/Number> | |||
...description: bricht unendliche schleifen ab! | |||
1.041 set ship command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name> | |||
...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> | |||
...description: setze eine locale Variable die auch von anderen Scripten ausgelesen werden kann | |||
1.043 <RetVar/IF> <RefObj> get local variable: name=<Var/String> | |||
...description: liest sie aus | |||
1.044 set global variable: name=<Var/String> value=<Value> | |||
...description: das ganze global | |||
1.045 <RetVar/IF> get global variable: name=<Var/String> | |||
...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; | |||
Version vom 8. Juli 2006, 19:22 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 ä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
1.001 <RetVar/IF><Expression> ...description: Standard Befehl um Variablen zuzuweisen, Schleifen zu bauen und Abfragen zu gestalten 1.002 inc <RetVar> = ...description: erhöht die Variable um 1 1.003 dec <RetVar> = ...description: vermindert die Variable um 1 1.004 @ <RetVar/IF> wait ms ...description: wartet X ms mit der ausführung des scriptes (pflicht in größeren Scripten) 1.005 @ <RetVar/IF> wait randomly fo to ms ...description: wartet einen Zeitspanne von min bis max -1 ms 1.006 = random value from 0 to -1 ...description: generiert eine Zufallszahl zwichen 0 und X -1 1.007 = random value from to -1 ...description: generiert eine Zufallszahl zwischen X und Y -1 1.008 *<Comment> ...description: Kommentare (pflicht für signierte Scripte ) 1.009 <RetVar> = script engine version ...description: gibt die Scriptengine versionsnr als integer zurück 1.010 = get script priority ...description: gibt die Priorität eines Scriptes zurück (höhere Prioritäten werden zuerst ausgeführt) 1.011 set script priority to ...description: setzt die Priorität 1.012 <RetVar/IF> is script with prio on stack ...description: überprüft ob ein Script mit der Priorität X auf diesem Objekt auf dem Stack liegt 1.0121 <RefObj> interrupt with script < Script Name > and prio : arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value> ...description: unterbricht das laufende Script mit dem Script X und mit der Priorität Y 1.013 <RetVar/IF> get task id ...description: gibt die Tasknummer zurück 1.014 <RetVar/IF> get global task id ...description: gibt die globale Tasknummer zurück 1.015 <RefObj> interrupt with script <Script Name> and prio ...description: unterbricht das laufende Script mit dem Script X und mit der Priorität Y 1.016 <RefObj> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio ...description: verbindet ein Signal mit einem Script 1.017 <RefObj> set ship command/signal <Object Command/Signal> 1.018 <RefObj> ignore ship command/signal <Object Command/Signal> 1.019 enable signal/interrupt handling: 1.020 <RetVar/IF> is signal/interrupt handling on ...description: fragt die signal und interrupt Behandlung ab (ob aktiv) 1.021 global ship map: set: key=<Object Command/Signal>,class=,race=,script=<Script Name>,prio= ...description: Verbindet ein Commando mit einer Schiffklasse oder/und race 1.022 global ship map: remove: key=<Object Command/Signal>,class=,race= ...description: entfernt die verbindung 1.023 global ship map: ignore: key=<Object Command/Signal>,class=,race= ...description: ignoriert beim verbinden folgende Schiffsklassen und/oder Rassen 1.024 set ship command upgrade: command=<Object Command/Signal> upgrade= ...description: verbindet Commandos mit Warenupgrades 1.025 <RetVar> = get ship command upgrade: command=<Object Command/Signal> ...description: gibt die Ware für ein Commando zurück 1.026 set script command: <Object Command/Signal> 1.027 <RetVar/IF> get script command 1.028 set script command target: <Value> 1.029 <RetVar/IF> get script command target 1.030 <RetVar> = datatyp[<Value>] ...description: gibt einen datentyp zurück 1.031 <RetVar/IF> is datatyp[<Value>] == ...description: vergleicht ob eine Variable einem bestimmten datentyp entspricht 1.032 <RetVar> = read text: page= id= ...description: liest einen Textid aus einem XML-File 1.033 <RetVar> = sprintf: fmt=,<Value>,<Value>,<Value>,<Value>,<Value> ...description: fügt in einen String Variablen ein platzhalter für die Variablen ist %s 1.034 <RetVar> = sprintf: pageid= textid=,<Value>,<Value>,<Value>,<Value>,<Value> ...description: das selbe nur mit einem XML-File 1.035 load text: id= ...description: läd einen XML-File 1.036 <RetVar> = state of news article: page= id= 1.037 set state of news article: page= id= to 1.038 <RetVar/IF> system date is month=,day= 1.039 <RetVar> = playing time ...description: spielzeit als integer 1.040 infinite loop detection enabled= ...description: bricht unendliche schleifen ab! 1.041 set ship command upgrade: command=<Object Command/Signal> upgrade= script=<Script Name> ...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= 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:||
}}