Forum moved to if-forum.org
Autor Nachricht
<  Untersuche [RAUM]
Kris
BeitragVerfasst am: Mi, 23 März 2005 - 11:27  Antworten mit Zitat
Kompassleser
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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Mi, 23 März 2005 - 12:29  Antworten mit Zitat
Experte
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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Kris
BeitragVerfasst am: Mi, 23 März 2005 - 13:03  Antworten mit Zitat
Kompassleser
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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
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.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05