Eine Kurzreferenz über alle Befehle ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Preprozessorbefehle ---------------------- o #define Syntax: #define Name #define Name Term #define Name(Parameter) Term Beschreibung: In der ersten Variante wird Name einfach der Liste aller definierten Namen hinzugefügt. Die zweite Variante sorgt zusätzlich dafür, dass, wenn in einem Ausdruck der Bezeichner Name auftaucht, dafür Term eingesetzt wird. Die dritte Variante sorgt dafür, dass, wenn in einem Ausdruck Name als Funktionsbezeichner auftaucht, dafür Term mit den entsprechenden Parametern eingesetzt wird. (Im Gegensatz zum LPC-#define muss Term ein richtiger (abgeschlossener) LPC-Ausdruck sein!) o #if Syntax: #if Term Beschreibung: Die Zeilen bis zum #else, #elif oder #endif werden nur dann einbezogen, wenn Term einen Wert !=0 ergibt. o #ifdef Syntax: #ifdef Name Beschreibung: Die Zeilen bis zum #else, #elif oder #endif werden nur dann einbezogen, wenn Name mit #define definiert wurde. o #ifndef Syntax: #ifndef Name Beschreibung: Die Zeilen bis zum #else, #elif oder #endif werden nur dann einbezogen, wenn Name mit #define nicht definiert wurde. o #elif Syntax: #elif Term Beschreibung: Die Zeilen bis zum nächsten #elif oder #endif werden nur dann einbezogen, wenn die vorgehenden Zeilen nicht mit einbezogen wurden und Term einen Wert !=0 ergibt. o #else Syntax: #else Beschreibung: Die Zeilen bis zum #elif oder #endif werden nur dann einbezogen, wenn die vorgehenden Zeilen nicht mit einbezogen wurden. o #endif Syntax: #endif Beschreibung: Beendet den Wirkungsbereich eines #if, #ifdef, #ifndef, #else oder #elif Befehls. o #include Syntax: #include #include "datei" Beschreibung: Einfügen Zeilen aus einer anderen Datei. Die Variante mit <> ist dabei auf Dateien mit den Endungen .h und .inc beschränkt. o #pragma globalvars Syntax: #pragma globalvars Beschreibung: Falls in einem Term unbekannte Bezeichner auftauchen, so werden dafür automatisch globale Rollenvariablen angelegt. o #pragma localvars Syntax: #pragma localvars Beschreibung: Falls in einem Term unbekannte Bezeichner auftauchen, so werden sie als innerhalb des Termes lokale Variablen behandelt. o #pragma novars Syntax: #pragma localvars Beschreibung: Falls in einem Term unbekannte Bezeichner auftauchen, so ergibt dies eine Fehlermeldung. o #undef Syntax: #undef Name Beschreibung: Falls Name mit einem #define definiert wurde, so wird dies wieder rückgängig gemacht. 2. Initialisierungsbefehle für den Rollenkopf ('Header', alles vor "Text:"): ---------------------------------------------------------------------------- Als Parameter für die Befehle ist entweder ein normaler Text (wie in den einzelnen Rollen angegeben) oder ein LPC-Ausdruck mit vorangestelltem $ möglich. Bei Teilnehmer__Lebewesen/Objekt muss dieser eine Liste aller möglichen Objekte liefern, bei allen anderen Befehlen einen String oder eine Zahlen (je nach Befehl). o Anzahl_Teilnehmer Syntax: Anzahl_Teilnehmer: <1, 2, 3...> Beschreibung: Festsetzen der Anzahl aktiver Teilnehmer einer Rolle o Rolle_abbrechbar Syntax: Rolle_abbrechbar: Beschreibung: Rollen können nur dann abgebrochen werden, wenn man es ihnen mit diesem Befehl erlaubt. o Rollen_Debugger Syntax: Rollen_Debugger: Beschreibung: Funktioniert genauso wie die Funktion "set_rollen_debugger()" o Start_Ort Syntax: Start_Ort: Beschreibung: Ist diese Option angegeben, wird die Rolle nur am festge- legten Ort gestartet. o Teilnehmer_... Syntax: Teilnehmer__Objekt: Teilnehmer__Lebewesen: = [(HIER|ICH|TO|TP|):]{(||*|^):}(||*|^) Beschreibung: Angabe, ob Mitspieler ein Lebewesen oder Objekt ist, und aller Moeglicheiten für diesen Mitspieler. Der Pfad wird dabei vom Anfang(HIER=Raum, ICH,TO=this_object(), TP=this_player() oder bzw. wenn nix angegeben wurde der Raum) durchlaufen (=alle Objekte mit der Id, =Raum in diesem Ausgang, *=alle Objekte, ^=die Umgebung). Syntax: Teilnehmer__: Beschreibung: Auswahl der richtigen Objekte. o Version Syntax: Version: 2 Beschreibung: Gibt an, dass es sich um eine Rolle, welche die Rollenerweiterungen nutzt, handelt. 3. Rollen-Befehle ('Body', alles hinter "Text:"): ------------------------------------------------- o Auto_Pause Syntax: Auto_Pause: Beschreibung: Ist das Ergebnis der Berechnung von größer Null, wird nach jedem Kommando automatisch eine Pause eingelegt. o GoSub Syntax: GoSub