Script

Einleitung

Die Scriptsprache von Clonk heißt C4Script.
Objekte und Szenarien von Clonk können ein Script enthalten. Funktionsaufrufe aus Szenarioscripten gelten als globale Aufrufe. Funktionsaufrufe aus Objektscripten gelten als lokale Aufrufe.
Für weitere Informationen zu den spezifischen Scriptarten siehe Objektscripte und Szenarioscripte.
C4Script verwendet C-ähnliche Syntax. Es gibt Operatoren, Variablendeklaration, Compound Statements (Blöcke), Bedingungen (if) und Wiederholungsschleifen (for und while).

Debugging

Fehlermeldungen lassen sich durch Aktivieren des Debugmodus in den Optionen des Menüsystems anzeigen. Jeder Script-Programmierer sollte den Debugmodus aktivieren.

Funktionen

Ähnlich wie in anderen Sprachen können in C4Script Funktionen deklariert werden:
func CreateRock()
{
  [Erzeugt einen Stein|Image=ROCK]
  CreateObject(ROCK,50,50);
  return(1);
}
Unmittelbar nach dem Funktionsnamen kann in eckigen Klammern eine Beschreibung der Funktion folgen, die in mehreren durch | getrennten Feldern einen kurzen Beschreibungstext und eine Bildreferenz (id der Definition, deren Bild verwendet werden soll) enthalten kann.

Variablen/Parameter

Variablen können Werte der Typen int, bool, id, string oder object enthalten. Für alle in Funktionsaufrufen ausgelassenen Parameter gilt grundsätzlich der Vorgabewert Null. Funktionen akzeptieren maximal zehn Parameter.

Kommentare

Scripte können Kommentare im C-Stil enthalten. Kommentare werden beim Laden des Script herausgefiltert und komplett ignoriert.
func MeineFunktion() // Ein Kommentar bis zum Ende der Zeile
{
  Message("Dieser Code wird ausgeführt"); /* Ein Kommentar in einem Block */ Message("Dieser auch");
  return(1);
}

Weitere Informationen

#appendto: Zum nachträglichen Erweitern fremder Scripte
#strict: Der neue Standard
Befehle zur Schleifenkontrolle
Aufruf von Scriptfunktionen
Effekte
Abfrage von Spieldaten
Benannte Variablen und ihre Geltungsbereiche
Operatoren: +, -, = etc. in C4Script
Überprüfung von Datentypen zur Laufzeit
Scriptspieler (z.B. KI-Spieler)
Sven2, April 2002
matthes, Juni 2004