Autor |
Nachricht |
< Mehrzügeeingaben |
|
Verfasst am:
Mo, 17 März 2003 - 12:33
|
|
|
Abenteurer
Anmeldungsdatum: 25.08.2002
Beiträge: 416
Wohnort: Essen
|
|
Einfache Frage: Ist es möglich, Eingaben des Spielers, die mehrere Züge von ihm auf einmal auslösen, generell abzufangen?
Beispiele:
> nimm alles
> u schnorb und nimm ihn
> töte hamster maus
Unter Umständen können solche Eingaben nämlich ärgerliche Bugs produzieren. Beispiel:
Code: |
Auf dem Fensterbrett
Du siehst hier einen Lappen und einen Eimer.
> nimm alles
Lappen: Du willst gerade danach greifen, da verlierst du das Gleichgewicht und fällst. Du siehst den Boden auf dich zurasen.
***
Im Krankenhaus
Du machst die Augen auf. Um dich herum ist es weiß.
Eimer: Du siehst hier keinen Eimer. |
Auch ein wohlplaziertes "Stop" im Quelltext scheint ihn nicht von seinem Plan abbringen zu können. Bestimmt ist die Lösung ganz einfach, aber ich komme mal wieder nicht drauf.
Danke jedenfalls! |
|
|
|
|
|
Verfasst am:
Di, 18 März 2003 - 8:24
|
|
|
Abenteurer
Anmeldungsdatum: 25.08.2002
Beiträge: 416
Wohnort: Essen
|
|
Zitat: | > töte hamster maus |
Arg, sorry, das geht ja gar nicht. Eigentlich meinte ich:
> töte hamster und töte maus
bzw.
> nimm hamster, maus
Sucht es euch aus. *g* |
|
|
|
|
|
Verfasst am:
Di, 18 März 2003 - 11:29
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Wie behandelt die T.A.M. Mehrfacheingaben oder "alles"? Zunächst wird eine Liste von Objekten gebildet. Für jedes Objekt in dieser Liste wird der Befehl ausgeführt. Ein Stop beendet die Ausführung nur für das jeweilige Objekt. Die restlichen Objekte werden trotzdem abgearbeitet. Wenn sie aufgrund eines ausgelösten Ereignisses nicht mehr sichtbar sind, kommt der entsprechende Fehler. Genauso ist es bei Pronomina, deren Bezugsobjekt nicht mehr sichtbar ist:
Code: |
> u schnorb und nimm ihn
Ein Schnorb halt.
Der Schnorb langweilt sich und geht laut schnorbend nach Osten.
Ich sehe "ihn" (den Schnorb) hier nicht.
|
Man kann vordefinierte T.A.G.-Befehle zwar verändern, allerdings nicht die Syntax-Definition, in der steht, dass Mehrfachnennungen zulässig sind.
In Deinem Fall könntest Du den Eimer vor dem Lappen definieren, so dass das Objekt, dass den Spieler beim Aufheben an einen anderen Ort bewegt, als letztes abgearbeitet wird. _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Di, 18 März 2003 - 16:54
|
|
|
Abenteurer
Anmeldungsdatum: 25.08.2002
Beiträge: 416
Wohnort: Essen
|
|
Hm, einen allgemeinen Weg gibt es also nicht. Schade - aber kein Weltuntergang. Trotzdem danke! |
|
|
|
|
|
Verfasst am:
Mi, 19 März 2003 - 13:17
|
|
|
Abenteurer
Anmeldungsdatum: 25.08.2002
Beiträge: 416
Wohnort: Essen
|
|
Zumindest Befehle mit "alles" kann man doch abfangen: Ich leite sie im ObjParser einfach auf einen anderen Befehl um. Klappt mit ein oder zwei Umwegen ganz gut.
Leider erzeugen Mehrzügeeingaben bei meinem Spiel nämlich generell große Probleme. |
|
|
|
|
|