Autor |
Nachricht |
< Supporter reagiert auf "siehe in ..." merkwürdig!? |
|
Verfasst am:
Fr, 5 März 2004 - 20:24
|
|
|
Kompassleser
Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Hi,
habe eine Bank entworfen (die zum sitzen) mit -has supporter static-.
Da es für Inform ja egal ist ob etwas "in" oder "on" ist, passiert folgendes:
>x bank
Die verwitterte Bank ist eingehüllt in Staub von der Landstrasse.
Auf der Bank ist einen Rucksack.
>siehe auf bank
Die verwitterte Bank ist eingehüllt in Staub von der Landstrasse.
Auf der Bank ist einen Rucksack.
>siehe in bank
Auf der Bank ist einen Rucksack.
...
Normalerweise müßte eine Meldung kommen wie z.B. "Du kannst nicht in die Bank sehen."
Wie kann ich es vermeiden, daß search ausgelöst wird, wenn "in" und nicht "auf" gesehen wird.
Habe es mit if (nextword() == 'in') .... versucht, hat aber nicht hingehauen.
... ich muß noch dazu sagen, daß an die description ein <<search self>> gehängt wird wenn etwas darauf steht, also eine Liste kommt wenn man die Bank untersucht oder darauf sieht.
Wie also macht man das, ohne daß der Spieler "siehe in" eingeben muß???
Danke schonmal für Hilfe
Kris |
|
|
|
|
|
Verfasst am:
Sa, 6 März 2004 - 8:28
|
|
|
Wasserträger
Anmeldungsdatum: 07.06.2003
Beiträge: 35
|
|
Hallo Kris,
es gäbe theoretisch die Möglichkeit, das Durchsuchen in der before-property zu unterbinden:
Code: | Object Bank "Bank"
with ...
before [; Search: "Du kannst nicht in die Bank sehen."; ],
.
.
.
|
Hier hast du allerdings das Problem, dass du ja gerade dieses Durchsuchen im Anschluss an description durchführen willst.
Meine Idee wäre: blocke Search wie oben, und führe das Anzeigen der Gegenstände, die auf der Bank liegen, in describe durch. Dann wird es allerdings auch immer in der Raumbeschreibung durchgeführt...
Die Grammatik für "Sieh in" generell zu ändern, halte ich für keine gute Idee, da dieser Befehl bei vielen anderen Objekten (z.B. Kisten) sinnvoll erscheint.
Marc |
|
|
|
|
|
Verfasst am:
Sa, 6 März 2004 - 9:39
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Zitat: | Die Grammatik für "Sieh in" generell zu ändern, halte ich für keine gute Idee, da dieser Befehl bei vielen anderen Objekten (z.B. Kisten) sinnvoll erscheint. |
Wieso unterscheidet die Lib nicht zwischen darauf- und hineinschauen? Das wäre doch clever, dann könnte der Autor unerwünschte Eingaben abfangen, und gültige würden immer noch durch Search abgefangen:
Code: |
[ LookInsideSub; <<Search noun>>; ];
[ LookOnSub; <<Search noun>>; ];
...
Verb 'schau'
* 'in' noun -> LookInside
* 'auf' noun -> LookOn
...
|
Das wäre noch besser, um die vielen Enter-Referenzen zu unterscheiden:
Code: |
[ SitOnSub; <<Enter noun>>; ];
[ StandOnSub; <<Enter noun>>; ];
[ LieOnSub; <<Enter noun>>; ];
Verb 'sitz'
* 'auf'/'in' noun -> SitOn;
|
Dann könnte man Sitzmöbel individuell gestalten, zum Beispiel Stühle, auf denen man nur sitzen kann:
Code: |
Object -> Stuhl
with before [;
LieOn: "Der Stuhl ist Liegen etwas unbequem.";
StandOn: "Der Stuhl ist weich gepolstert und bietet
keine gute Standfläche.";
];
...
|
Und noch eine böde Frage: Wieso sind für die Lib 'auf'/'durch' sowie 'in'/'aus'/'nach'/'neben' äquivalent? Das ist doch Quatsch. "Schaue durchs Fenster" ist <Examine Fenster>, "schaue ins Fenster" ist <search Fenster>? Aus der stabilen GermanG.h:
Code: |
* 'auf'/'durch' noun -> Examine
* 'in'/'aus'/'nach'/'neben' noun -> Search
* 'in'/'auf'/'neben' noun 'nach' -> Search
|
"schaue aus der Kiste -- In der Kiste sind eine Apfelsine und eine Wollsocke." Huh? Und wer zum Teufel schaut 'neben' etwas? (Es sei denn, der Protagonist schielt.) _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Sa, 6 März 2004 - 10:19
|
|
|
Kompassleser
Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Ok, danke für die Ansätze.
Ich habe es jetzt folgendermaßen gelöst:
Description läuft jetzt über eine Routine, in dieser wird ein Flag gesetzt.
In der before Property wird nun bei search erst noch geprüft, ob dieses Flag gesetzt ist, wenn ja (also wenn ein search ausgeführt werden soll) wird das search ausgeführt, wenn nicht kommt die Meldung: Wie willst du 'in' eine Bank sehen?"
(dann Flag natürlich wieder auf false)
Mag etwas gurkenhaft programmiert sein (habe bei Inform noch nicht so ganz rausgefunden wann es gurkenhaft sein muß und wann es ganz elegante Lösungen gibt), aber so habe ich die Gewissheit, daß es für dieses Object stimmt, und wer hat das schon wenn er die Grammatik umschreibt ;-)
Grüße
Kris |
|
|
|
|
|
Verfasst am:
Sa, 6 März 2004 - 12:28
|
|
|
Wasserträger
Anmeldungsdatum: 07.06.2003
Beiträge: 35
|
|
Die Idee von Martin - unterschiedliche Verben, die nur dann alle zu Search führen, wenn der Autor NICHT interveniert - halte ich für die Beste in solchen Fällen.
Allerdings bin ich generell auch der Meinung - nachdem ich in meinem eigenen Spiel momentan auch am Erweitern einiger Verben bin - dass einige Verbdefinitionen der aktuellen GermanG.h überarbeitungswürdig sind.
Marc |
|
|
|
|
|
Verfasst am:
So, 7 März 2004 - 8:34
|
|
|
Kompassleser
Anmeldungsdatum: 21.02.2004
Beiträge: 198
Wohnort: Rheinmain
|
|
Hm...
nach einigen Überlegungen werde ich mit extend arbeiten um auf alle Fälle mal sieh auf und sieh in unterscheiden zu können.
Schön auf alle Fälle daß man hier Antworten bekommt.
Grüße
Kris |
|
|
|
|
|