| Autor |
Nachricht |
| < Untersuche [RAUM] |
|
Verfasst am:
Mi, 23 März 2005 - 11:27
|
|
|
Kompassleser

Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Hallo zusammen!
Mich würde mal interessieren, ob sich jemand schon mit folgendem auseinandergesetzt hat:
Angenommen du bist in einem Schuppen:
| Code: | Schuppen
In dem Schuppen liegt allerhand Werkzeug auf dem Boden verstreut. Spinnweben brechen das wenige Licht, dass durch eine völlig staubige Scheibe hereinscheint.
>UNTERSUCHE SCHUPPEN
Ich kenne das Wort "Schuppen" nicht.
>??? Häh??? |
Nun sollte man meinen, dass man einfach den Namen mit aufnimmt:
| Code: | Room Schuppen
with name 'schuppen' 'bude' 'rumpelkammer' 'werkstatt',
description ".... |
Aber in DM4 §8 steht, dass Aktionen, die auf die Namen eines Raums zielen, die Ausgabe "That's not something you need to refer to in the course of this game." aktivieren.
In der deutschen Lib erzeugt aber jede Aktion die Ausgabe der Raumbeschreibung (sowohl in Z-Code als auch in Glulx):
>NIMM SCHUPPEN
Schuppen
In dem Schuppen...
Is it a bug or a feature???
Momentan tendiere ich zu einem zweiten Objekt:
Class Room_obj
has scenery;
Room_obj Schuppen_obj
with description "....";
Hat sich damit schon mal jemand beschäftigt?
Dank und Gruß
Christof |
|
|
|
 |
|
Verfasst am:
Mi, 23 März 2005 - 12:29
|
|
|
Experte

Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
| Kris hat folgendes geschrieben: | | Aber in DM4 §8 steht, dass Aktionen, die auf die Namen eines Raums zielen, die Ausgabe "That's not something you need to refer to in the course of this game" aktivieren. |
Genau. Das tun sie bei mir auch. Zum Beispiel, wenn ich Vokabular für die Gasse in Altdorf im Florians Übersetzung von Wilhelm Tell eingebe.
Der Text, der ausgegeben wird, ist (##Miscellany, 39), und der wird ausgegeben, wenn der Parserfehler den Wert SCENERY_PE hat. Von einem <<Look>> oder einem Überschreiben der Default-Texte kann ich nichts sehen. Was ich mir denken könnte, ist, dass die Routine Refers(...) hier das Vokabular nicht als zum Raum gehörend erkennt, vielleicht, weil ein anderes Objekt bereits Schuppen heißt? (Wenn ich in Tell dem Raum Namen anderer Objekte gebe, passiert aber nichts - es werden immer die realen Objekte genommen, wenn sie in Sicht sind. Außerdem gab es das Wort "Schuppen" ja vorher nicht.)
Eigenartigerweise definiert die Lib - auch die aktuelle - einen ähnlichen Text bei (##Miscellany, 36). Dort sollte aber eher eine Warnung stehen, die etwas mit all ... except zu tun hat.
Überschreibst du etwas? Benenne einmal dein Objekt LibraryMessages um und schaue einmal, ob danach immer noch zum <<Look>> umgelenkt wird. Hast du das mit dem Raumvokabular in anderen Räumen auch beobachten können? Und könnte das Ganze nicht etwas damit zu tun haben, dass du eine Erweiterung benutzt, um in Fehlermeldungen falsch eingegebene Wörter statt "nichts dergeichen" auszugeben?
| Kris hat folgendes geschrieben: | | Momentan tendiere ich zu einem zweiten Objekt: |
Das ist - ebenso wie die Klassendefinition für solche Objekte - eine gute Idee. _________________ Every silver lining has a cloud. |
|
|
|
 |
|
Verfasst am:
Mi, 23 März 2005 - 13:03
|
|
|
Kompassleser

Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Oweh!
Ich traue mich ja gar nicht, dass zu sagen 8-O
Ich arbeite mit einer umgemodelten ParserError-Routine, die die Ausgabe [Ich kenne das Wort "shcrank" nicht.] produziert.
Ebenso:
Ich kenne das Verb "wrif" nicht.
(muss man trennen, weil Inform das erste Wort gegen die Verben parst und sonst die Meldung "Ich kenne das Wort "Tür" "nicht ausgegeben würde, wenn man ">tür" eingibt.)
Na jedenfallst ist das schon eine Zeitlang her und ich habe mich auch etwa nur eine halbe Stunde damit beschäftigt, sodass diese Sache wohl nicht in meinem Hirn hängen geblieben ist.
Ein Teil davo sieht so aus (2.ZEILE!):
| Code: | [ ParserError pe;
if (pe == SCENERY_PE) <<Look>>;
if (pe == VERB_PE) return DontKnowVerbError();
if (pe == CANTSEE_PE) return DontKnowError();
rfalse;
] |
Was aber falsch ist. SCENERY_PE wird ja für jede Aktion zurückgegeben. Ich habe es geändert in:
| Code: | [ ParserError pe;
if (pe == SCENERY_PE && action_to_be == ##Examine) <<Look>>;
if (pe == VERB_PE) return DontKnowVerbError();
if (pe == CANTSEE_PE) return DontKnowError();
rfalse;
] |
Nun funktioniert es.
So spare ich mir die zusätzlichen Objekte dann doch.
Sorry, tut mir echt leid für die Zeit...
Gruß
Christof |
|
|
|
 |
|
|
Alle Zeiten sind GMT + 1 Stunde (MEZ) |
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|