Please note that I have moved my site! It is now hosted by ProHosting.

Navigation: Table of Contents, Index, next: MUSH-Programmierung in Imbris, Teil 2, prev: Imbris für Newbies

MUSH-Programmierung in Imbris, Teil 1

Ich spiele nicht mehr im Imbris MUSH. Erstens habe ich keine Zeit mehr dafür, und zweitens gab es mir zuwenig Spieler dort. Das ist schade, denn von der Idee her hat Imbris mich damals (1997/98) total begeistert.

Dies ist eine Seite, in der ein paar Programmierbeispiele vorgestellt werden, die speziell für den Imbris MUSH gedacht sind. Bevor man sich mit dem Programmieren auseinandersetzt, sollte man allerdings ein paar Mal in Imbris gespielt haben. Ab dem dritten oder vierten Mal kann man dann ans Programmieren gehen, falls man Zeit und Lust dazu hat. Wer neu ist, sollte sich einmal die Seite für Newbies, dh. für Anfänger, anschauen. Wer sich schon besser auskennt, kann sich ja an The MUSH Manual wenden.

Auf dieser Seite finden sich code Beispiele für:

  1. Ein einfacher Raum
  2. Ein einfacher Gegenstand
  3. Wir bringen Leben in den Raum
  4. Ein Geheimer Zugang zu einem zweiten Raum

Auf einer zweiten Seite stelle ich den code für den Trommelverkäufer vor.

Zu beachten ist bei all diesen Beispielen, dass in einem MUSH ein Befehl immer auf einer Zeile getippt werden muss. Was hier auf der WWW Seite also auf mehreren Zeilen verteilt ist, muss im MUSH auf einer Zeile eingegeben werden! Ein weiteres Muss ist der Verzicht auf alle Umlaute. Bitte verwendet die entsprechenden Umschreibungen ae, oe und ue. Will man sich einmal ansehen, wie das folgende Beispiel aussieht, kann man den Trommelladen mit allem drum und dran in der Stadt Imbris vom Bazar aus erreichen.

Ein einfacher Raum

Bevor man mit einem Raum anfängt, sollte man sich vielleicht fragen: Was können die anderen Spieler in meinem Raum erleben? In Imbris hat es meist wenig Leute, umso interessanter sind Räume, die man auch alleine erforschen kann, die auch ohne weitere Mitspieler interessant sind. Einfach ein Privates Zimmer zu programmieren ist meiner Meinung nach nicht Grund genug, um seinen Raum angeschlossen zu bekommen.

Wir fangen an, indem wir mit @dig/teleport einen Raum graben und ihn beschreiben. Die @desc Beschreibung ist der Text, der erscheint, wenn man den Raum betritt. Die dazu gehörige Hilfe bekommt man mit help @dig und help @desc.

@dig/teleport Trommelladen

@desc here = In Nooms Trommelladen faellt das Licht gedaempft durch die Fenster ein. Staubige Regale entlang den Waenden biegen sich unter dem Gewicht der vielen Trommeln, die hier aufgestapelt sind. Von grossen, fast mannsgrossen tandrischen Drachtrommeln bis hin zu kleinen Doppeltrommeln fuer das Fest der Feuerkinder gibt es hier fast alles. Alle Trommeln scheinen aus dem Nordosten von Imberia zu kommen. Hinter der Theke gibt es eine Tuer, an der ein "Privat" Zettel haengt. Der Holzboden knarrt.

Nun fügen wir noch ein paar Sinneseindrücke hinzu. Die dazu gehörige Info bekommt man mit +hilfe sinne. Hier setzen wir zum ersten Mal sogenannte Attribute, in dem wir &ATTRIBUT objekt = wert verwenden. here bezeichnet dabei den Raum, in dem man sich gerade befindet.

&GERUCH here = Der Trommelladen ist erfuellt von einem exotischen, wuerzigen Geruch. Offensichtlich zuendet Iloorg von Zeit zu Zeit Raeucherstaebchen an, und ihr Geschmack haengt in allen Ritzen und Spalten. Dazu kommt noch der leichte Ginger Geruch, der allen Tandrisch anhaengt, und das nach Nuessen riechende Trommelfett, mit dem die Tandrisch die Felle fuer ihre Trommeln nachbehandeln.

&GERAEUSCH here = Leichter Laerm dringt von der Strasse herein. Hier drinnen ist es aber ruhig und friedlich. Ein leichter Windhauch bringt das Glockspiel ueber der Tuere zum klingen. Der Boden knarrt. Es ist still hier.

&GEFUEHL here = Hier ist es ruhig und kuehl. Eine entspannte, wuerzige Atmosphaere erfuellt den Raum.

Nun fügen wir noch ein paar Details hinzu. Details ermöglichen es den Spielern, in einem Raum ein wenig zu Forschen. Es gibt hier mehrere Ideologien: Viele meinen, dass man fast jedes Substantiv der @desc Beschreibung in einem Detail näher beschreiben sollte (und alle dort auftauchenden Substantive auch wieder!). Dieser Meinung bin ich nicht. Ich denke vielmehr, dass es nur wenige Details geben sollte, die dafür, sofern sie nicht Teil eines Rätsels sind, sehr deutlich als solche erkennbar sein sollten. Derartige Details werden dann GROSS geschrieben. Siehe auch +hilfe detail.

&DETAIL_TROMMEL here = Jede Trommel hier traegt die typischen, trandrischen schwarz-roten MALEREIEN.

&DETAIL_MALEREIEN here = Die Malereien zeigen Drachen und Menschen die miteinander ringen, hohe Berge, enge Taeler, und ab und zu eine schreckliche, duestere Burg, auf unwegsamen Felsen errichtet.

Nun muss der Raum noch an den Rest der Welt angeschlossen werden! Solange er dies nicht ist, warnt uns der MUSH davor, indem er von Zeit zu Zeit meldet, You own a floating room!. Um diese Warnung zu umgehen, setzen wir in diesem Raum einen Flag, der dies unterdrückt:

@set here = FLOATING

Vgl. hierzu help FLOATING. Den Weg nach draussen können wir problemlos programmieren. Wir wählen uns einfach einen Raum aus, zu dem man zutritt haben möchte (der eigene Raum muss natürlich in dessen Nähe passen, so wie der Trommelladen in die Nähe des Bazars passt). Der Bazar hat die Nummer #67. Deswegen erzeugen wir einen Ausgang mit:

@open Hinaus <HI>;hi;raus;bazar;ba = #67

@succ hi = Du verlaesst den Trommelladen.

@osucc hi = verlaesst den Trommelladen.

@odrop hi = kommt aus dem Trommelladen.

Ein paar Aliase nicht vergessen. Vor allem hinaus und hi sind Aliase, die man, wo immer möglich, mit einbauen sollte. Dokumentation hierzu mit help @open.

Das Attribut @succ beschreibt, was derjenige sieht, der den Ausgang benützt, @osucc beschreibt, was die Verbleibenden sehen, und @odrop beschreibt, was diejenigen sehen, die am anderen Ende des Ausgangs stehen. Vor allem @osucc ist wichtig, damit man Personen folgen kann, die den Raum verlassen. Siehe auch die entsprechenden help Seiten. Wenn man also im Trommelladen steht, und hinaus tippt, dann wird man vom Trommelladen auf den Bazar befördert. Hierzu sieht man das @succ Attribut, die Leute im Trommelladen sehen @osucc, und die Leute auf dem Bazar sehen @odrop.

Einen Rückweg vom Bazar in den Trommelladen können wir leider nicht programmieren, da uns der Bazar nich gehört. Damit wir trotzdem immer schnell in unseren Raum teleportieren können, machen wir:

@link me = here

Doch wem gehört nun der Bazar? Wenn wir ex #67 eintippen, erfahren wir, dass der Bazar Sarokar gehört. Deswegen fragen wir Sarokar nach einem Zutritt vom Bazar zu unserem Trommelladen:

post/sende sarokar = Hallo! Ich bin relativ neu hier und habe mir nun einen eigenen Raum gebaut. Es ist ein Trommelladen. Schau ihn Dir einmal an, wenn Du Lust hast. Ich wuerde mich freuen, wenn man einen Zugang vom Bazar zu Trommelladen haben koennte. Kannst Du einen solchen Zugang bauen? Mein Trommelladen hat die Nummer #2546, so dass ich mir ein '@open Zum Trommelladen <ZT>;zt;laden;trommel = #2546 vorgestellt habe.

Ein einfacher Gegenstand

In derselben Art machen wir einen kleinen Gegenstand. Siehe auch help @create und help @lock.

@create Feuervogel

@lock Feuervogel = me

@desc Feuervogel = Der Feuervogel sieht aus wie ein rot-oranger Pfau, mit kobaltblauen Augen. Sein Blick ist stumm und ein wenig beaengstigend. Saehe er nicht so wunderbar zart aus, koennte dieser starre, blaue Blick laehmend wirken. Mit seinem geschwungenen Hals und den wie Lava schillernden FEDERN scheint er aber nicht sehr bedrohlich zu sein. Sein Nest scheint auf einem Regal in einem der hinteren, dunklen Ecken des Ladens versteckt zu sein.

&DETAIL_FEDERN Feuervogel = Wenn Du versuchst, Dich dem Vogel zu naehern, weicht er zurueck. Verfolgst Du ihn, flattert er auf! Erst jetzt bemerkst Du, dass er brutale KLAUEN traegt. Seine Federn kannst Du nicht genauer in Augenschein nehmen. Sie schillern in allen rot und orange Toenen.

&DETAIL_KLAUEN Feuervogel = Die Klauen des Feuervogels sind etwa fingerlange Klingen aus einem dunkelroten, metallisch glaenzendem Material. Wie der Vogel aufflattert und mit seinen Klauen nach Dir hackt, fuerchtest Du um Dein Gesicht, solltest Du Dich ihm weiter naehern.

Wir bringen Leben in den Raum

Hierfür brauchen wir Aktionen. Siehe auch +hilfe Aktionen. Eine zufällige Aktion wird alle 30 Sekunden ausgelöst. Indem wir eine höhere Anzahl Aktionen angeben, als wirklich vorhanden sind, werden diese auch entsprechend seltener angegeben. Persönlich mag ich es nämlich nicht sehr, wenn in einem Raum zuviele derartigen Aktionen passieren. Dies kann man entsprechend weiter ausbauen.

&ACTION_ANZAHL here=10

&ACTION_0 here = Das Murmeln der Leute auf dem Basar toent von der Strasse herein.

&ACTION_1 here = Der Feuervogel betrachtet Dich neugierig.

Ein Geheimer Zugang zu einem zweiten Raum

Zuerst bauen wir einen zweiten Raum, wobei wir uns die Nummer des neu erschaffenen Raumes merken:

@dig/teleport Keller

@desc here = Hier ist es kalt und finster. Die Waende sind aus grob behauenen Steinen, und staubig, SPINNWEBEN fuellen die dunklen Ecken des Kellers. Ein leichter Hauch von Moder erfuellt den Raum.

&DETAIL_SPINNWEBEN here = Die Spinnweben sind gross, schwer von Staub. Im duesteren Licht hier unten siehst Du kleine, vielbeinige Schatten in den Netzen haengen. Ab und zu erzittern die Netze. Vielleicht ist es nur ein Lufthauch. Wenn Du aber genauer hinschaust, siehst Du, wie eine grosse, sich schnell bewegende Spinne eine Schmeissfiege umwickelt. Die Spinnen sind ueberall. Es koennte sich in diesem Moment eine auf Dich abseilen und Dir im Nacken landen!

&GERUCH here = Es riecht hier unten nach modrigem Erdreich. Ab und zu riechst Du den ueblen, zaehen Geruch von Faekalien und Faeulniss. Man koennte meinen, Du seist in frischen Hundekot getreten, und von Zeit zu Zeit erreicht Dich ein Hauch davon.

Zuerst gehen wir wieder in den Trommelladen (mit dem Zauberwort heim) und verbinden diese beiden Räume, indem wir vom Laden aus einen Ausgang zum neuen Raum und zurück schaffen:

@open Durch die Falltuere hinab <FT>;runter;hinab;ft = #2447, Hoch <HO>;ho;raus

@succ ft = Du oeffnest die Falltuere und kletterst hinab.

@osucc ft = oeffnet die Falltuere und klettert hinab.

@odrop hi = schiebt eine Trommel beiseite und klettert aus der dahinter liegenden Falltuere.

@set ft = DARK

Der DARK Flag macht den Ausgang unsichtbar. Danach gehen wir hinunter (hinab) und beschreiben noch den Rückweg:

@succ ho = Du kletterst hoch.

@osucc ho = klettert hoch.

Wir gehen wieder zurück in den Laden, benutzen diesmal aber den normalen Ausgang, hoch. Zu allerletzt müssen wir nämlich noch eine Möglichkeit schaffen, um diesen Raum zu entdecken! Wie oben der Trommelladen beschrieben wurde, wurde der knarrende Holzboden erwähnt. Dies ist der Tip für den Geheimgang, wir setzen einfach noch ein Attribut:

&DETAIL_HOLZBODEN here = Der Holzboden ist fest gefuegt und sieht relativ neu aus. Um festzustellen, warum er knarrt, muesste man ihn vielleicht abklopfen.

Und um den Boden abzuklopfen, fügen wir noch einen neuen Befehl ein. Neue Befehle sind Attribute, die so aussehen: $befehl: aktionen.

&KNOCK here = $*klopf*boden*: @emit %N faengt an, den Boden abzuklopfen. Tatsaechlich, hinter einer grossen Trommel toent es hohl! Die Trommel kann man sicher verschieben.

&SCHIEBEN here = $*schiebe*trommel: @emit %N verschiebt eine Trommel.%rUnter der Trommel befindet sich eine Falltuere!; @set ft=!DARK; @wait 60=@set ft=DARK; @wait 65=@emit Illorg schiebt die Trommel zurueck auf ihren Platz.%rIloorg sagt, "Schnueffler! Lasst mir bloss meinen Laden in Ruhe!!"

Iloorg ist der Verkäufer im Trommelladen, der auf der zweiten Code-Seite besprochen wird.

Jeder Text, der nun 'klopf' und 'boden' enthält, wird als Befehl interpretiert, den Boden abzuklopfen. Dies ist problematisch, weil man nun nicht einmal mehr über das Abklopfen des Bodens reden kann, ohne diesen Befehl auszulösen. Andererseits kann man nun mit jeder Menge Befehle den Boden abklopfen: klopfe den Boden ab, Noom klopft den Boden ab, ich klopfe den holzboden ab, und so weiter. Das selbe gilt fuer das Verschieben der Trommeln. Persönlich habe ich es nämlich am lieber, wenn man nicht allzulange nach Befehlen raten muss.

Hier werden nach dem Verschieben der Trommel zwei Sachen gemacht: Erstens wird die Falltüre auf !DARK gesetzt, und zweitens wird ein timer gestartet, welcher nach einer Minute die Falltüre wieder schliesst (dh. auf DARK setzt und somit unsichtbar macht).

Was die seltsamen Prozent Zeichen sollen, erfährt man mit help substitution.


Navigation: Top, Table of Contents, Index, next: MUSH-Programmierung in Imbris, Teil 2, prev: Imbris für Newbies


http://hammer.prohosting.com/~gumbart/code.html / Alex Schroeder <a.schroeder@bsiag.ch> / updated: 2000-01-24 / significant changes: 1999-06-14