IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Fehler bei geschlossenen Behältern?
AntwortenNeues ThemaNeue Umfrage

Fehler bei geschlossenen Behältern?

Geschrieben um 23:44 am 22.07.2010 | Zitat | Editieren | Löschen
C++
Mitglied
Bachelor Gumby
Beiträge: 40

Kuckuck, ich bin's noch mal... Und ich erwarte keine kostenlose Nachhilfe, vor allem, weil etwas Ähnliches unter [url]http://forum.ifzentrale.de/viewtopic.php?t=814 [/url]schon mal diskutiert wurde. Nur geholfen haben mir die vielen Tipps von Christian dort nicht.

Das DM4 sagt (wenn ich's richtig verstehe), dass der Inhalt von Containern nur sichtbar ist, wenn diese offen oder transparent sind. Trotzdem bekomme ich beim Untersuchen von Containern den Inhalt aufgelistet.

Das ganze sieht so aus:


Object   -> herd "steinern@00 Herd"

with      description [; print "Der Herd ist aus dicken glatt gehauenen Feldsteinen gemauert und hat einen großen Schornstein in der

            Nordostecke der Küche. An der Vorderseite ist eine mit Luftschlitzen versehene Eisenklappe angebracht, hinter der das Herdfeuer

            angemacht wird. Obenauf liegt eine schwere eiserne Kochplatte, auf der mindestens vier große Töpfe Platz haben.";],

            initial "Ein mächtiger gemauerter Herd steht an der Nordwand.",

            name 'herd' 'kochplatte',

            before [; Open:

               <<open klappe>>;

            ],

has         supporter male enterable static;

Object   ->-> klappe "Herdklappe"

with      name 'herd' 'klappe' 'herdklappe',

            describe [;

               print "Vorne am Herd ist eine schwere eiserne Klappe angebracht. Vier Schlitze darin sorgen dafür, dass das Herdfeuer nicht

               erstickt.";

               if (self has open) print "Die Herdklappe ist geöffnet.";

               else rtrue;

            ],

!            invent [;if (self hasnt open) rtrue;],

!            when_closed [;print (string) self.describe;],

has         concealed container openable female;

Deko2   ->->-> asche "Asche"

with      name 'asche',

            article "etwas",

has         female;

Immer wenn ich die Herdklappe anschaue, wird die Asche genannt. (In der momentanen Version ausschließlich, aber das ist erst mal egal.)

Die im o.g. Thread vorgeschlagene Lösung mit react_before wirkt für mich ein wenig von hinten durch die Brust ins Auge; daher habe ich sie noch nicht ausprobiert. Mit der invent-, der description- und der describe-Property habe ich auch schon rumgespielt; nützt alles nichts: die Asche bleibt sichtbar.

Liegt hier ein Fehler in der Lib vor?

Schöne Grüße,

Christof

Geschrieben um 09:31 am 23.07.2010 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Also ich bekomme mit Deinem Code:

Frotz:

u klappe

Du kannst nicht hineinschauen, die Herdklappe ist geschlossen.

öffne sie

Du öffnest die Herdklappe und findest etwas Asche darin.

u klappe

In der Herdklappe siehst du etwas Asche.

Und das klingt doch vernünftig (außer dass die Asche wohl im Herd und nicht in der Klappe ist - Du kannst Dir hier gewiss eine Verschahtelungstiefe sparen). Ich habe die Klasse Deko2 einfach als static implementiert.

Und die Leerzeilen sehen bei mir wieder sehr durcheinander aus. Da Du gerne in der Lib Sachen änderst, kompiliere Dein Spiel doch mal mit einer frischen, unangetasteten Lib. Zitat:

Geschrieben um 22:58 am 23.07.2010 | Zitat | Editieren | Löschen
C++
Mitglied
Bachelor Gumby
Beiträge: 40

Hallo Martin!

Danke für den Tipp, jetzt läuft es erst mal wie geplant. Tatsächlich sah meine ExamineSub anders aus als die, die ich vor zwei Tagen von deiner Webseite geladen habe. Nein, ich habe keine Ahnung, woher die Änderungen kommen, aber der Kreis der Verdächtigen ist ziemlich klein... (Ich schreibe immer nur in längeren Ferien an meinem Adventure, da sollte ich solche Änderungen wohl protokollieren.)

Zitat:

Und das klingt doch vernünftig (außer dass die Asche wohl im Herd und nicht in der Klappe ist - Du kannst Dir hier gewiss eine Verschahtelungstiefe sparen). Ich habe die Klasse Deko2 einfach als static implementiert.

Jepp, das glaube ich auch. (Genau so wenig muss die Stange über dem Herd nicht dessen Tochterobjekt sein.) Problem bei Herd/ Herdklappe ist, dass ein Gegenstand nur Supporter oder Container sein kann. Wie nennt man eigentlich den Innenraum eines frühzeitlichen Herds, in dem das Feuer gebrannt hat? Brennkammer wohl kaum.

Vielleicht fällt mir da noch was Besseres ein, sonst bleibt die Herdklappe zu und der Schatz wird im Klohäuschchen versteckt.

Schöne Grüße,

Christof

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz