Geschrieben um 12:14 am 06.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hallo, ich habe mal ein paar Fragen zu Containern in Inform 6. Wie bekomme ich es weg, dass in der Raumbeschreibung der Inhalt von Containern angezeigt wird? Z.Zt. sieht es so aus: <Raumbeschreibung>.... Du siehst hier ein altes Auto und einen Werkzeugkasten (darin einen Hammer, einen Schraubenschlüssel und eine Zange). Besser wäre es, wenn da nur Werkzeugkasten stehen würde. Meine nächste Frage ist, wie bekomme ich es hin, dass wenn man einen Container anschaut, dessen Inhalt mit aufgelistet bekomme? Momentan sehe ich den Inhalt nur, wenn man den Container im Inventar hat: Du hast Folgendes: einen Werkzeugkasten einen Ledergurt einen Hammer einen Schraubenschlüssel eine Zange Hier ist auch gleich das nächste Problem: der Ledergurt im Kasten hat die Eigenschaft "scenery" und sollte eigentlich nicht in der Liste da stehen, wie kann ich das ändern? Hier nochmal der aktuelle Code des Kastens und dessen Inhalt
Vielleicht kann mir ja jemand dabei helfen. Schönen Gruss, Flo05 |
Geschrieben um 17:48 am 06.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Hallo Flo, Flo05:
hier ein Vorschlag, der vielleicht nicht die Eleganz in Reinkultur darstellt, aber funktioniert:
|
Geschrieben um 12:11 am 07.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hallo, vielen Dank für deine Hilfe, das klappt alles prima. Jetzt sieht das alles viel besser aus. Die "scenic.h" werde ich mir mal anschauen, weil ich immer versuche jedes Detail einzubauen, so dass man es zumindest ansehen kann. |
Geschrieben um 14:48 am 07.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hallo nochmal, nun habe ich noch ein ähnliches Problem, mit einer Theke auf der Dinge stehen. Hier mal der Code:
In der Raumbeschreibung sieht es leider so aus: Du siehst hier eine Theke (darauf ein Brathähnchen, ein Schnitzel, einen Salat und ein Mineralwasser). Wieso klappt das hier nicht mit dem react_before / react_after? Ist zwar irgendwie logisch, dass man Dinge auf der Theke auch sieht, aber ich finde es schöner, wenn man die Dinge nur sieht wenn man die Theke anschaut. |
Geschrieben um 23:33 am 07.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Seltsam. Bei mir macht dein Code genau das, was du erreichen möchtest: Der Inhalt des Supporters wird während der Aktion ##Look erfolgreich unterdrückt. Mein Testspiel:
Dies ist eine Testzone. Du siehst hier eine Theke.
Auf der hölzernen Theke stehen die Speisen die hier verkauf werden. Darüber hängt an der Wand eine Preisliste und ein Geldkartenlesegerät. Auf der Theke siehst du einen Werkzeugkasten, einen Hammer, einen Schraubenschlüssel und eine Zange. Dass der Inhalt der Theke bei dir immer noch angezeigt wird, muss andere Gründe haben. Welche Library-Version benutzt du? Ich teste dein Beispiel mit deform (Release 6/11 2007-07-11). |
Geschrieben um 00:37 am 08.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hatte laut der Datei deform.hst eine Version vom 29.09.2005. Habe nun mal die Version vom 11.07.2007 installiert (Danke an Martin Oehm, dass er an deform noch arbeitet, auch ein Dank an dir ChristianB für den Hinweis auf eine neue Version). Also wenn man den Raum betritt, sehe ich folgendes: Du siehst hier eine Theke (darauf ein Brathähnchen, ein Schnitzel, einen Salat und ein Mineralwasser). Wenn ich aber im Raum nochmal die Raumbeschreibung aufrufe, sehe ich das hier: Du siehst hier eine Theke. Der Code ist wie oben beschrieben, ausser den Lebensmitteln die ich mir hier gespart habe. Woran kann das liegen, dass es bei dir funktioniert und bei mir nicht? |
Geschrieben um 02:20 am 08.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Ahh, knifflig. Wenn ich das Spiel neu starte und sich die Theke im Startraum befindet, dann klappt alles. Wenn ich aber den Raum, in dem die Theke steht, betrete, dann funktioniert es nicht mehr. Das Phänomen, das du beschreibst konnte ich hier reproduzieren: Mein Testspiel:
Dies ist eine Testzone. Du kannst nach Westen gehen.
Spielwiese (der uncoole westliche Teil) Dies ist der westliche Teil der Spielwiese. Da ist normalerweise nichts los, da hängen höchstens mal die Typen ab, die nicht auf die coolen Partys eingeladen werden. Bill Gates und Howard Sherman waren früher oft hier. Du kannst in Richtung Osten gehen. Du siehst hier eine Theke (darauf einen Werkzeugkasten (der leer ist), einen Hammer, einen Schraubenschlüssel und eine Zange). Ok. Das liegt daran, dass nach dem Befehl GEHE NACH WESTEN die aktuelle Action nicht ##Look ist, sondern ##Go. Ich schlage Folgendens vor (recht dreckig):
|
Geschrieben um 02:48 am 08.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hallo, du bist ein Genie. Das funktioniert. Vielen vielen Dank. Habe auch gleich mal meinen Werkzeugkasten angepasst. Dann kann ich meine Geschichte nun weiter schreiben, und dank dir sieht es auch noch schön aus. |
Geschrieben um 23:50 am 08.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Flo05:
... aber das ganze Geben und Nehmen von Attributen in react_before und react_after ist nicht so schön. Es geht natürlich hübscher, nämlich mit der Property describe; wenn die true zurückgibt, dann wird die Ausgabe als vollendet angesehen und die Kinder des Objekts nicht mehr mit angegeben.
|
Geschrieben um 14:31 am 09.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hallo, habe es mal so eingebaut. Bei der Theke, die fest im Raum steht, sieht das recht gut aus. Aber bei tragbaren Gegenständen wie dem Werkzeugkasten gefällt mir das nicht so, dass der Kasten in einer extra Zeile im Raum erwähnt wird. Was gibt es denn für Nachteile, wenn ich die Version mit react_before und react_after drin lasse? |
Geschrieben um 15:22 am 09.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Flo05:
Solange es funktioniert, keine (außer stilistischen). Ich kann mir aber vorstellen, dass die Mogelei mit den Attributen in komplexeren Zusammenhängen zu Fehlern führen könnte, z.B. dass ein weggenommenes Attribut nach der Raumbeschreibung nicht wieder zurückgegeben wird. [Edit:]Wenn du es aber als natürlich empfindest, dass der Inhalt von Supportern und Containern in der Raumbeschreibung erscheint und dir lediglich die Ausgabe in Klammern nach dem Objekt-Short-Name nicht gefällt, kannst du die Konstante NO_NESTED_LISTS definieren (eine hübsche deform-Besonderheit) -- der Inhalt der Objekte wird dann in einem eigenen Absatz aufgelistet. [Edit2]Mir kam das Thema gleich so bekannt vor; wir haben das schon mal für T.A.G. diskutiert. In T.A.G. gibt es eine Darin-Property, mit der man die Ausgabe des Objektinhalts ganz einfach steuern kann. Gibt es vielleicht ein Pendant in Inform? |
Geschrieben um 19:24 am 09.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | So. Neuer Post. Manchmal kommt die Erkenntnis nur sehr langsam... Ich habe jetzt die Alternative zu der Methode mit react_before und react_after und der Attribut-Klauerei gefunden, die mir im Hinterkopf rumschwirrte: Füge den Objekten (container oder supporter), bei denen die Ausgabe des Inhalts unterdrückt werden soll folgende Property hinzu:
|
Geschrieben um 22:56 am 09.12.2007 | Zitat | Editieren | Löschen | |
Mitglied Pupil Gumby Beiträge: 12 | Hallo, noch einmal vielen vielen Dank. Danke für diese grossartige Hilfe. Habe das nun so eingebaut, es es funktioniert ebenfalls wunderbar. Dann lasse ich es mal so, wenn das die eleganteste Lösung ist. |
Geschrieben um 12:27 am 05.07.2009 | Zitat | Editieren | Löschen | |
Mitglied Baby Gumby Beiträge: 3 | Nur zur Info für euch Falls jemand OLE Containers benutzen will sollte er mit Dekomprimierungs-Probleme bei Windows vista rechnen. |