blob: 0d19d0364a2299adfea80dc6032e016268729f63 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001WICHTIG:
2 **********************
3 Das erste Zeichen muss ab jetzt ein Komma (,) sein. Bisher war
4 es ein Semikolon, aber das wechselwirkt ja mit dem emote.
5 **********************
6
7DER TELLERSTAPEL:
8
9 Der Tellerstapel ist ein stackorientiertes Magiertool.
10 Das heisst, man legt die Objekte, Strings oder was auch immer auf
11 den Stack und ruft als letztes die Funktion auf, die dann mit
12 dem Stackihnhalt irgendetwas macht. Das Ergebnis wird meistens
13 dann wieder auf dem Stack abgelegt.
14 Im grossen und ganzen dieses Tool von Macbeths Lupe inspiriert.
15
16 Im folgenden wird mit TOS (TopOfStack) das Ding bezeichnet, das
17 als letztes auf dem Stack abgelegt wurde.
18
19KOMMANDOS:
20
21 Jedes Kommando, das mit den Tellern ausgefuehrt werden soll,
22 wird mit ',' eingeleitet. Allerdings hat das Semikolon noch
23 eine weitere Funktion, aber dazu spaeter.
24
25DINGE AUF DEN STACK LEGEN:
26
27 Hinter dem Semikolon werden (beliebig viele) Stackoperationen
28 angegeben. Die meissten dieser Operationen legen irgendetwas auf
29 dem Stack ab. Will man Objekte auf dem Stack ablegen, so gibt
30 man einfach deren Filenamen an. Zahlen gibt man durch ein voran
31 gestelltes Doppelkreuz ('#') an. (Positive Zahlen gehen auch ohne.)
32 und Strings werden in Anfuehrungszeichen eingefasst, damit sie von
33 den Objekten unterschieden werden koennen. (Uebrigens ist das Zeichen
34 '\n' und das ESC-Zeichen ('\e') in Strings erlaubt.)
35
36STACKOPERATIONEN:
37
38 Stackoperationen, die den Stack nicht beeinflussen.
39
40 say - Meldungen an Mitspieler ein- und ausschalten.
41 Umstehende sehen normalerweise, wenn man mit den
42 Tellern arbeitet, eine Meldung der Art:
43 "Sowieso jongilert mit seinen Tellern." bzw
44 "Sowieso faellt beim Jonglieren ein Teller herunter."
45 names - Objekte mit oder ohne Namen bei Auflistungen
46 ausgeben.
47 stack - Gebe Stackinhalt aus (0 ist der TOS).
48 memory - Gebe Inhalt der Variablen aus.
49 top - Gebe den TOS aus.
50 inv - Gebe eine Liste der Objekte aus,
51 die sich im TOS-Objekt befinden.
52 scan - Gebe relevante Daten zu dem Spieler auf dem TOS aus.
53
54 Stackoperationen, die mit selbstdefinierten Funktionen zu tuen
55 haben:
56
57 ! - Definiere eine neue Funktion.
58 (Hilfe unter "funktionen".)
59 dump
60 restore - Speichern und Laden der benutzerdefinierten
61 Funktionen
62
63 Stackoperationen, die etwas auf dem Stack ablegen:
64
65 me - Lege dich selbst auf den Stack.
66 here - Lege den Raum, in dem Du bist, auf den Stack.
67
68 Stackoperationen zu dessen Verwaltung:
69
70 dup - Lege den TOS noch einmal auf den Stack.
71 pop - Loesche den TOS vom Stack.
72 swap - Verstauche den TOS mit dem Ding darunter.
73 clear - Loesche den ganzen Stack.
74
75 Die folgenden Funktionen poppen ihre Parameter vom Stack herunter.
76
77 Funktionen mit einem Parameter:
78
79 clone - Clone ein Objekt mit den angegebenen Filenamen.
80 Lege das geclonte Objekt auf den Stack.
81 update - Zerstoere die Blueprint des Objektes.
82 remove - Zerstoere das Objekt.
83
84 Funktionen mit mehreren Parametern:
85
86 move - Bewege das zweitoberste Element in das Oberste.
87 if - suche abhaengig vom obersten Element eines der
88 darunter liegenden aus.
89
90 Funktionen mit beliebig vielen Parametern:
91
92 Um zu wissen, wieviele der Stackelemente zu dem Funktions-
93 aufruf gehoeren, muss eine Information auf dem Stack
94 abgelegt werden. Dieses wird mit einem Lock (';') gemacht.
95 Unter dem Stichpunkt "lock" sind auch Beispiele.
96
97 array - Fuege alle Elemente zu einem Array zusammen.
98 split - Zerlege das Array auf dem Stack in Einzelteile.
99
100 -> - Rufe in dem untersten Objekt die hinter dem
101 Pfeil stehende Funktion auf. Uebergebe alle
102 dem Objekt folgenden Elemente als Parameter.
103 --> - Dito. Lege aber das Ergebnis wieder auf
104 auf dem Stack ab.
105 (Hilfe ist unter dem Begriff "call" zu finden.)
106
107 -* - Rufe die hinter dem -* stehende efun auf.
108 uebergib alle Stackelemente als Parameter.
109 --* - Dito mit Ergebnisrueckgabe.
110 (Hilfe unter dem Begriff "callefun".)
111
112 @ - Fuehre den LPC-Code hinter dem Klammeraffen aus.
113 @@ - Dito mit Returnwert.
114 (Hilfe unter "evaluate".)
115
116 Wie die Befehle im einzelnen funktionieren, kann man durch
117 ";hilfe <Befehl>" erfahren. Thema ist im Allgemeneinen der
118 Befehlsname. Bei Ausnahmen bitte oben nachlesen. ;-)
119
120 Viel Spass damit
121 Rumata, die Goettin der Morgenroete.