MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | WICHTIG: |
| 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 | |
| 7 | DER 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 | |
| 19 | KOMMANDOS: |
| 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 | |
| 25 | DINGE 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 | |
| 36 | STACKOPERATIONEN: |
| 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. |