Geschrieben um 17:23 am 22.04.2009 | Zitat | Editieren | Löschen | |
Mitglied Baby Gumby Beiträge: 2 | Ich habe Inform erst seit einigen Wochen, und obwohl ich alles genau so mache wie es in Designer's Manual steht, klappen die Objektzuweisungen nicht richtig.
|
Geschrieben um 18:03 am 22.04.2009 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Hallo, Auf den ersten Blick stelle ich folgende Fehler oder Ungenauigkeiten fest: Vokabeln sollten in einfachen Hochkommas geschrieben werden, also
Vielleicht geht das auch mit doppelten Hochkommas, das wird aber im DM4 nicht so beschrieben. Dann hast du nach der name-Property das Komma vergessen und zudem "decription" anstatt "description" geschrieben. Letzteres verursacht keinen Fehler, aber das Objekt hat dann eben keine Beschreibung, die Inform ausgibt. Viel Erfolg! Edit: Als ich "dekl 1" sah, vermutete ich, dass die ofizielle Lib verwendet wird. Aber das kann man auch in deform verwenden, was ich allerdings noch nie getan habe, da ich die einfache Lösung mit den Low-Strings vorziehe. |
Geschrieben um 10:06 am 23.04.2009 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Hmm, also wenn ich das genau so kompiliere, sagt mir Inform:
Offensichtlich machst Du es also nicht genau so, wie es im Designers' Manual steht. Ich habe den Code leicht modifiziert und dann klappt alles so, wie es wahrscheinlich soll:
Wie Christian schon geschrieben hat, solltest Du alle Eigenschaften mit einem Komma abschließen. Inform verwendet Kommas und Strichpunkte leider sehr, äh, eigenartig und ist sehr pingelig. Eine Übersicht darüber, wo ein Komma, wo ein Strichpunkt und wo gar nichts hinkommt, bietet das InformFAQ. Außerdem schließt Du die Anweisung "Das Gold ..." mit einem Komma und nicht mit einem Semikolon ab*. Dadurch gehört die Zuweisung auf deadflag zur (impliziten) print_ret-Anweisung, deren Rückgabewert 2 an den text angehängt wird: Frotz:
Du solltest hier einen Strichpunkt verwenden, und dann sagt der Compiler auch, dass die Zuweisung von deadflag nie erreicht wird. Warum nicht? Weil ein String stillschweigend als print_ret interpretiert wird und damit quasi ein return true ist. Alle Codebeispiele mit deadflag im DM4, das Du ja angeblich genau befolgst, machen es so wie in meinem korrigierten Code: erst deadflag setzen, dann einen Text ausgeben. Schließlich sollte die Truhe openable sein, denn sonst kann man sie nicht öffnen und after, das nur bei Erfolg berücksichtigt wird, wird nie ausgeführt. Die Vokabeln in name in Gänsefüßchen zu setzen, ist legal, aber leider eine Ausnahme. An allen anderen Stellen (außer bei Verben) müssen Vokabeln in Hochkommas eingeschlossen werden. Ich finde es daher besser, auch in name diese Nomenklatur zu verwenden, obwohl das andere Probleme bereitet. (Übrigens, das DM4 verwendet auch Hochkommas.)
Aber in diesem Fall ist das nicht richtig. |
Geschrieben um 21:13 am 05.05.2009 | Zitat | Editieren | Löschen | |
Mitglied Baby Gumby Beiträge: 2 | Ah, okay. Danke. Ich habs neu kompiliert, und jetzt klappt's^^ |