Skript-Syntax

Ein Skript sagt dem Computer was er unter welchen Umständen zu tun hat. Es besteht aus Objekten und Funktionen (functions). Objekte sind Dinge, die im Projekt verwendet werden etwa eine Zahl (Variable), ein Text, ein Screen-Bild (Bitmap) usw. Funktionen bestimmen das Verhalten von Objekten indem Sie deren Eigenschaften zur Laufzeit dynamisch verändern. Ein Objekt wird durch Angabe seines Typs (type), seines Namens (name) und eines Eingangswertes (value) in der Skriptdatei definiert; wie hier:

type name = value;
type name = { ... }

Die zweite Zeile ist für zusamengesetzte Objekte, sogenannte Structs, die nicht nur einen einzelnen Wert, sondern viele, zwischen geschweiften Klammern angegebene, Parameter enthalten. Ein Objektname kann bis zu 30 Buchstaben haben. Groß- und Kleinschreibung sind in C-Skript egal, nicht aber in Lite-C, C, oder C++. Namen dürfen nicht mit Zahlen beginnen, noch dürfen sie, mit Ausnahme des Unterstrichs_ irgendwelche Sonderzeichen beinhalten. Auch ist es nicht erlaubt, für verschiedene Objekte zweimal denselben Namen zu verwenden. Ausserdem müssen Sie darauf achten, nicht einen bereits für eine Engine-Variable oder einen Objekt-Parameter reservierten Namen zu benutzen.

Der Semikolon ';' beendet eine 'logische Zeile'. Eine Skriptzeile kann also mehrere logische Zeilen beinhalten oder eine logische Zeile kann sich über diverse Skriptzeilen ausbreiten. Die Grenze liegt bei 8000 Zeichen und 500 Elementen pro logische Zeile.

Das Skriptobjekt, dem man am meisten begegnet, ist eine Variable - ein Element, welches Zahlen speichert. Eine Gruppe aus drei Zahlen - oft in 3D-Arithmetik verwendet - nennt man einen Vektor, eine Gruppe von vielen Zahlen einen Array. Beispiel:

var myvariable = 123.456;  

Eine spezielle Variablen-Art stellt das Flag dar. Es ist ein binärer Wert, der wie ein Schalter auf on (1) oder off (0) gesetzt werden kann. Ein weiteres spezielles objekt ist ein String - der speichert keine Zahl sondern eine Folge von Zeichen - ein Stück Text - in Anführungsstrichen. Beispiel zur Definition eines initialisierten String-Pointers.:

STRING* mystring = "It is now time for all good men...";

Beachten Sie das Pointer-Suffix '*' , welches in lite-C gebraucht wird, in C-Skript jdedoch weggelassen werden muß. Unterscheidet sich der Code in Beipielen zwischen beiden Sprachen, sind die Unterschiede in grün für lite-C und rot für C-Script gekennzeichnet.

Ein Dateiname (file name) stellt eine spezielle Art von String dar. Er weist dem gegebenen Objekt den Inhalt einer Datei zu. Dateinamen sind normalerweise auf 20 Zeichen begrenzt und dürfen keinen Pfad enthalten. Um welche Art von Datei es sich handelt, ist aus der Extension ersichtlich. Die Skriptsprache unterstützt Bilddateien ( wie .PCX, .BMP, .TGA, or .DDS) für Bitmaps oder Sprites, .MDL für Modelle, .WMB für Map-Entities, .HMP für Terrain, .MID für Sonsg, .WAV oder OGG für Sound-Effekte, .AVI oder .MPG für Filme, .FX für Shader, .WDL für C-Skript und .C für Lite-C-Skripte. Hier ein Beispiel für ein Bitmap-Objekt, das durch einen Dateinamen definiert ist, welcher seinen Inhalt bestimmt.

BMAP mybitmap = "billboard.tga";

Innerhalb des Skripts sind folgende Sonderzeichen gültig:

; Semikolon - beendet jede Anweisung oder logische Linie.
{...} Geschweifte Klammern - umschliessen Structs oder Listen von Anweisungen.
(..,..) Funktionsparameter werden in Klammern angegeben und durch Kommata getrennt.
"..." Text- oder Dateinamen werden zwischen Anführungszeichen angegeben.
[...] Array- oder Vektor-Indices werden zwischen
//... Kommentar bis zum Ende der Zeile. Ein Skript darf nicht mit einem Kommentar enden.
/*...*/ Kommentarblock. Ein Skript darf nicht mit einem offenen Kommentarblock enden.

Keine Programmiersprache verzeiht Syntaxfehler. Jedes vergessene oder überflüssige Komma oder Semikolon wird beim Starten mit fast absoluter Sicherheit eine Fehlermeldung produzieren. Seien Sie also vorsichtig. In einigen alten S-Skripten finden Sie eventuell Objekte, Anweisungen oder Variablen, die aufgegeben oder durch neuere Versionen ersetzt wurden und daher hier nicht mehr dokumentiert sind. Benutzen Sie diese nicht für eigene Skripte. Benutzen Sie nur, was entweder hier beschrieben ist, oder was Sie selbst definiert haben. Features, die erst ab der Extra-, Commercial- oder Professional-Edition zur Verfügung stehen, sind mit , , oder gekennzeichnet.

Namenskonvention

Bei Namen muss in Lite-C auf die Gross- und Kleinschreibung geachtet werden, in C-Skript nicht. Damit Ihr Code besser lesbar wird, empfehlen wir eine Konvention zum Benennen von Variablen und Objekten. Wir schreiben #defines in GROSSBUCHSTABEN, lokale Variablen sowie Engine- und Templatevariablen in Kleinbuchstaben mit Unterstrich (my_variable) und globale Variablen mit einem Typen-Präfix und in gemischter Gross-Kleinschreibweise (myVariable). Hier ein Beispiel für Typen-Präfixe:

Typ Präfix Beispiel
var - myVariable
long, int i iMyInteger
char chr chrMyChar
short s sMyShort
float f fMyFloat
double d dMyDouble
VECTOR vec vecVelocity
COLOR col colLight
STRING* str strMyString
BMAP* bmp bmpMyBmap
SOUND* snd sndMySound
PANEL* pan panMyPanel
TEXT* txt txtMyText
ENTITY* ent entMyEntity

Wenn Sie verschiedene Code-Module in Ihrem Skript verwenden, fügen Sie Ihren Variablen und Funktionen am besten ein Modul-Präfix hinzu. Im Default.c-Modul haben wir sämtliche Variablen mit dem Präfix 'def_' versehen.

Siehe auch:

Variables, Pointers, Structs, Functions,

 

► Aktuelle Version Online